2013-03-11 105 views
0

下面是我的数组示例。我想每次在数组中都有一个user_id。我想每次在数组中都有一个user_id。在PHP中的多维数组中重复计数值

Array 
(
[0] => Array 
    (
     [user_id] => 57002892 
     [page_id] => 109446562415595 
    ) 

[1] => Array 
    (
     [user_id] => 515576073 
     [page_id] => 109446562415595 
    ) 

[2] => Array 
    (
     [user_id] => 560299932 
     [page_id] => 109446562415595 
    ) 

[3] => Array 
    (
     [user_id] => 607960053 
     [page_id] => 109446562415595 
    ) 

[4] => Array 
    (
     [user_id] => 607960053 
     [page_id] => 109446562415595 
    ) 
) 

,这应该输出如下:

Array 
(
[0] => Array 
    (
     [user_id] => 57002892 
     [count] => 1 
    ) 

[1] => Array 
    (
     [user_id] => 515576073 
     [count] => 1 
    ) 

[2] => Array 
    (
     [user_id] => 560299932 
     [count] => 1 
    ) 

[3] => Array 
    (
     [user_id] => 607960053 
     [count] => 2 
    ) 
) 

这是可能做到?

回答

0

让你的例子输入是$ input_array在下面的代码:

$user_id_hash = array(); 
foreach($input_array as $occur) 
{ 
    if(!array_key_exists($occur['user_id'], $user_id_hash)) 
    { 
     $user_id_hash[$occur['user_id']] = 0; 
    } 
    $user_id_hash[$occur['user_id']]++; 
} 
$user_id_arr = array(); 
foreach($user_id_hash as $user_id => $count) 
{ 
    $user_id_arr[] = array('user_id' => $user_id, 'count' => $count); 
} 

如果你确定与关联数组,你可以删除第二个循环。

+0

什么是'$ user_id'?这给了我错误:注意:未定义的变量:user_id – tytyguy 2013-03-11 03:56:00

+0

应该是第4,6和8行中的“$ user_id_hash”。我更新了要反映的答案。 – 2013-03-11 04:03:57