2015-11-06 71 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