假设我有一个这样的数组:
array('a string', 23, array(array('key'=>'value'), 67, 'another string'), 'something else')
我想知道我的数组有多少个值,不包括作为主数组成员的数组。如何?(预期结果为6)
Foreach 循环不适合,因为问题本身 -数组的未知深度。
有谁知道如何实现这个?
您可以使用array_walk_recursive。
$count = 0;
array_walk_recursive($arr, function($var) use (&$count) {
$count++;
});
echo $count;
以下函数返回给定数组中所有非数组值的数量——不管它是否是多维的。
function countNonArrayValues(array $array)
{
$count = 0;
foreach ($array as $element) {
$count += is_array($element) ? countNonArrayValues($element) : 1;
}
return $count;
}