我有这样的阵列发送到我的观点如何计算PHP中的数组/对象内的元素?
Array
(
[0] => stdClass Object
(
[emg_id] => 2
[fkit] => 1
[door] =>
)
)
我想看看有多少元素是空的,NULL,或“0”。
我试过使用count
,但它总是返回'1',而不是计算所有的元素,所以我以后可以确定哪些符合我上面的条件。
任何想法我做错了什么?
我有这样的阵列发送到我的观点如何计算PHP中的数组/对象内的元素?
Array
(
[0] => stdClass Object
(
[emg_id] => 2
[fkit] => 1
[door] =>
)
)
我想看看有多少元素是空的,NULL,或“0”。
我试过使用count
,但它总是返回'1',而不是计算所有的元素,所以我以后可以确定哪些符合我上面的条件。
任何想法我做错了什么?
// number of "null" elements
echo count(array_filter((array) $array[0], 'is_null'));
还有一些其他的is_*()
-functions内置,可以帮助您例如计算字符串的数量(依此类推)。
要进行测试,如果一个元素是(例如)0
,我建议使用匿名功能
echo count(array_filter((array) $array[0], function ($item) {
return $item === 0;
}));
的其他情况下是类似的。
通过它们循环并计数。
function loopMe($array, $value) {
$num = 0;
foreach($array as $key=>$val) {
if($val == $value)
$num++;
}
return $num;
}
$ar = array (
array (
"emg_id" => 2
"fkit" => 1
"door" => null));
$num = loopMe($ar[0], null);
记录在http://php.net/manual/en/function.count.php – GreenMatt
thx @kingcrunch - 你的第一个例子中的'is_null'怎么样:我得到一个错误消息,说第二个参数应该长,字符串给定 - 你的'is_null'只是一个占位符? – pepe
@torr:再次偶然发现我的圆括号...... http://xkcd.com/297/ – KingCrunch