2013-05-03 64 views
0

我正在嘗試不僅計算特定值出現在數組中的次數,還將輸出限制爲僅偶數結果。對Multidemsional數組的計數值進行分組

$quotes = array(
     array(
     'quote' => 1, 
     'from' => 'NC', 
    ), 
     array(
     'quote' => 2, 
     'from' => 'MA', 
    ), 
     array(
     'quote' => 3, 
     'from' => 'OH', 
    ), 
     array(
     'quote' => 2, 
     'from' => 'MA', 
    ), 
     array(
     'quote' => 1, 
     'from' => 'NC', 
    ), 
    ); 

如何可以通過這個陣列過濾計數的每個「報價」倍量,然後顯示結果,其中的計數> 1

+0

每一個獨特的「報價'顯示偶數次 - 你是什麼意思? – raidenace 2013-05-03 21:32:27

+0

@Raidenance,過濾此數組只能重複值。在這種情況下,只應顯示1,而忽略2&3,因爲它們只會在 – MLB 2013-05-03 21:38:36

+0

已經嘗試過我的解決方案時纔出現? – michi 2013-05-05 18:51:02

回答

0
$result = array_map('unserialize',array_keys(array_diff(array_count_values(array_map('serialize',$quotes)),array(1)))); 

工作原理:

  1. 使一維陣列由serialize
  2. 計的所有值
  3. 刪除使用array_diff
  4. array_count_values認沽值成鍵表示,計數1所有值,檢索鍵作爲值
  5. unserialize把它放回原設計

看到它的工作:http://codepad.viper-7.com/9RPjdK

+0

這很好,但一個問題。 只有在'quote'重複時纔可以設置爲過濾嗎? 我會在每個數組中輸入更多的數據,這可能會混淆這一行的過濾。 – MLB 2013-05-14 21:54:21

相關問題