【发布时间】:2013-08-28 02:33:14
【问题描述】:
我正在尝试编写一个递归计算数组元素的函数。
但结果是假的。
可能有什么问题?
$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));?不需要第二个参数。 -
但是没有这个参数我怎么能递归计算?
标签: php arrays recursion multidimensional-array arraylist