我试图写一个递归计数数组元素的函数。Php递归数组计数
但结果是错误的。
这是什么问题?
$schema = array(
'div' => array(
'class' => 'lines',
'div' => array(
'span' => array(
'key' => 'Product Name'
),
'val' => 'Soap'
),
'layer' => array(
'span' => array(
'key' => 'Product Name'
),
'val' => 'Ball'
)
)
);
function count_r($array, $i = 0){
foreach($array as $k){
if(is_array($k)){ $i += count_r($k, count($k)); }
else{ $i++; }
}
return $i;
}
echo count_r($schema);
错误还是零?运行'var_dump($ schema)'并告诉我们输出。 –
@ConnorPeet它返回14,这是错误的结果 –
啊,这是完全不同的。为什么你有'count_r($ k,count($ k));'?不应该需要第二个参数。 –