2015-11-06 72 views
0

我一直在嘗試計算數組中最後一個葉節點元素。 我正在考慮:如何統計相關/嵌套數組的葉子元素

  • 使用'array_walk_recursive'從testArray獲取簡單的leaf元素數組。
  • 使用「array_count_values」對新數組中的元素進行計數。

林不知道該如何擺脫「array_walk_recursive」一個簡單的列表陣列,我只是得到的值的長字符串....還是有實現這個結果的更好的辦法?

期望的結果:

flammable = 1 
irritant = 2 
toxic = 3 

PHP:

$testArray = Array 
(
    [0] => Array 
    (
     [0] => toxic 
     [1] => irritant 
     [3] => flammable 
    ) 

    [1] => Array 
    (
     [0] => toxic 
     [1] => irritant 
    ) 

    [2] => Array 
    (
     [0] => toxic 
    ) 
); 

array_walk_recursive($testArray, function(&$value) 
{ 
    echo 'string = '.$value; 
    print_r(newArray);    //How can i get this new array list? 
}); 

$counts = array_count_values($newArray); //and use this to count values? 

回答

1

試試這個,這個數字應該在$groups數組中出現。

$groups = array(); 

array_walk_recursive($testArray, function(&$value) use (&$groups) 
{ 
    if (isset($groups[$value])) { 
     $groups[$value]++; 
    } else { 
     $groups[$value] = 1; 
    } 
}); 

print_r($groups); 
+0

我只是得到一個空的數組結果使用它? – Orbitall

+0

@Orbitall葉,忘了把'$ groups'作爲參考。 – Flosculus

+0

乾杯,多數民衆贊成在比我試圖更簡單! – Orbitall