2015-06-16 65 views
0

基本上,我有一個多維數組,我想要計數state,但有時在數組中我可以得到重複lid,所以我得到了lid與最新date_add基於多維數組中的最新元素計算唯一值-PHP

[0] => Array 
    (
     [lhid] => 181 
     [lid] => 183 
     [uid] => 1 
     [state] => 2 
     [date_add] => 2012-12-06 09:25:41 
    ) 

[1] => Array 
    (
     [lhid] => 198 
     [lid] => 203 
     [uid] => 1 
     [state] => 1 
     [date_add] => 2012-12-10 13:19:26 
    ) 

[2] => Array 
    (
     [lhid] => 222 
     [lid] => 203 
     [uid] => 1 
     [state] => 1 
     [date_add] => 2012-12-13 20:12:06 
    ) 

任何方式,我可以做到這一點?非常感激!

這裏是有我到目前爲止已經試過,沒有成功,因爲它GETR所有值:

$count = array(); 
foreach($stats_results as $state) 
{ 
    @$count[$state['state']]++; 
} 

這裏的通緝格式:

Array 
(
    [1] => 110 
    [2] => 4 
    [0] => 4 
    [3] => 2 
) 
+0

你想要什麼格式的結果? – splash58

+0

編輯我的帖子:) – user3350731

+0

鍵 - uid,值 - 與該uid狀態計數? – splash58

回答

0
// sort array by date in decreasing order 
usort($arr, function ($a, $b) { return strtotime($b['date_add']) - strtotime($a['date_add']); }); 

$lids = array(); // used lids 
$result = array(); 

foreach($arr as $item) 
    if (!in_array($item['lid'], $lids)) {  // If lid was before do nothing 
     if (isset($result[$item['state']])) $result[$item['state']]++; 
     else $result[$item['state']] = 1; 
     $lids[] = $item['lid']; 
    } 

var_dump ($result); 

與您的數據導致

array(2) { [1]=> 1, [2]=> 1 } 
+0

不客氣! – splash58

相關問題