给定以下数组$mm
Array
(
[147] => Array
(
[pts_m] =>
[pts_mreg] => 1
[pts_cg] => 1
)
[158] => Array
(
[pts_m] =>
[pts_mreg] =>
[pts_cg] => 0
)
[159] => Array
(
[pts_m] =>
[pts_mreg] => 1
[pts_cg] => 1
)
)
当我跑步时count(array_filter($mm))
I get 3
结果是因为它不是递归的。
count(array_filter($mm), COUNT_RECURSIVE)
也不会这样做,因为我实际上需要运行array_filter
递归地进行,然后计算其结果。
所以我的问题是:我如何递归运行array_filter($mm)
在这种情况下?
我的预期结果是4
.
请注意,我没有使用任何回调,因此我可以排除 false、null 和empty。
来自PHP array_filter文档:
//This function filters an array and remove all null values recursively.
<?php
function array_filter_recursive($input)
{
foreach ($input as &$value)
{
if (is_array($value))
{
$value = array_filter_recursive($value);
}
}
return array_filter($input);
}
?>
//Or with callback parameter (not tested) :
<?php
function array_filter_recursive($input, $callback = null)
{
foreach ($input as &$value)
{
if (is_array($value))
{
$value = array_filter_recursive($value, $callback);
}
}
return array_filter($input, $callback);
}
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)