假设我有一个这样的数组:
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;
}