如何在 PHP 上计算数组/对象内的元素数量?

发布于 2024-11-25 08:25:42 字数 316 浏览 2 评论 0原文

我将此数组发送到我的视图,

Array
(
    [0] => stdClass Object
        (
            [emg_id] => 2
            [fkit] => 1
            [door] => 
        )

)

我想计算有多少元素为空、NULL 或“0”。

我尝试使用 count 但它总是返回“1”,而不是计算所有元素,因此我可以稍后确定哪些元素满足我的上述条件。

有什么想法我做错了吗?

I have this array being sent to my view

Array
(
    [0] => stdClass Object
        (
            [emg_id] => 2
            [fkit] => 1
            [door] => 
        )

)

I would like to count how many elements are empty, NULL, or '0'.

I tried using count but it always returns '1', instead of counting all of the elements, so I can later determine which satisfy my conditions above.

Any ideas what I'm doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ι不睡觉的鱼゛ 2024-12-02 08:25:42
// number of "null" elements
echo count(array_filter((array) $array[0], 'is_null'));

还有一些其他内置的 is_*() 函数,可以帮助您计算字符串的数量(等等)。

为了测试,如果一个元素是(例如)0,我建议使用匿名函数

echo count(array_filter((array) $array[0], function ($item) {
  return $item === 0;
}));

其他情况类似。

// number of "null" elements
echo count(array_filter((array) $array[0], 'is_null'));

There are some other is_*()-functions built-in, that may help you for example to count the number of strings (and so on).

To test, if an element is (e.g.) 0, I suggest to use an anonymous function

echo count(array_filter((array) $array[0], function ($item) {
  return $item === 0;
}));

The other cases are similar.

池木 2024-12-02 08:25:42

循环遍历它们并计数。

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

loop through them and count.

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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文