如何计算关联/嵌套数组的叶元素

时间:2015-11-06 17:10:18

标签: php

我一直在尝试计算数组中的最后一个叶节点元素。 我想的是:

  • 使用以下命令从testArray获取一个简单的叶元素数组:'array_walk_recursive'。
  • 使用以下命令计算新数组中的元素:'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 个答案:

答案 0 :(得分: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);