如何在PHP中获取数组元素(成员)的确切数量



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

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;
}

最新更新