1

假设我有一个这样的数组:

array('a string', 23, array(array('key'=>'value'), 67, 'another string'), 'something else')

我想知道我的数组有多少个值,不包括作为主数组成员的数组。如何?(预期结果为6

Foreach 循环不适合,因为问题本身 -数组的未知深度

有谁知道如何实现这个?

4

2 回答 2

6

您可以使用array_walk_recursive

$count = 0; 
array_walk_recursive($arr, function($var) use (&$count) { 
  $count++; 
}); 
echo $count; 

工作演示。

于 2012-09-20T08:40:29.757 回答
1

以下函数返回给定数组中所有非数组值的数量——不管它是否是多维的。

function countNonArrayValues(array $array)
{
    $count = 0;
    foreach ($array as $element) {
        $count += is_array($element) ? countNonArrayValues($element) : 1;
    }
    return $count;
}
于 2012-09-20T08:48:05.077 回答