gpt4 book ai didi

php - 计算子/子数组中的条目

转载 作者:行者123 更新时间:2023-12-04 17:22:05 25 4
gpt4 key购买 nike

我正在聊天。我有一个数组,其中包含有关房间的信息(在下面的示例中,2 个房间(休息室、海滩))。

当我有一个空房间(在示例中是海滩)时,我遇到了一个问题,因为它默认不包含任何用户(这是一个 Null 用户)。

$roomNusers=Array ( 
[The Lounge] =>
Array ( [id] => 1
[privacy] => public
[users] => Array
[QUICHE POIREAU] => Array
[smiley] => smi_smile.gif
[name] => QUICHE POIREAU
[state] => NULL
[id] => 1 )
[JOHN DOE] => Array
[smiley] => smi_smile.gif
[name] => Joe FRANC
[state] =>
[id] => 40 )
[The Beach] => Array
[id] => 2
[privacy] => public
[users] => Array
[Null] => Array
[smiley] => Null
[name] => Null
[state] => Null
[id] => Null

我正在尝试计算我的数组中当前出现在房间中的用户数量。环顾 Stack Overflow,我设法找到了我想要的解决方案:

foreach($roomNusers as $room => $value)
{
echo $room.' user count:'.count($room['users'])
}

这个输出:

The lounge user count: 2
The beach user count: 1

我的问题是它计算海滩上的用户 [null]。

我如何计算每个房间不为空的用户数?

我想到了一个类似于以下的解决方法:

$countperroom= .count($room['users'])-1;
if(isset(end([$room]['users']))){$countuser+1;}

这里面最后一个用户是空的,我没有添加用户,但是我不知道怎么写。

最佳答案

与其计算 $room['users'] 中值的数量,您可以在过滤它们以删除空键后计算键的数量:

foreach ($rooms as $name => $room) {
$users = count(array_filter(array_keys($room['users'])));
echo "$name: $users users\n";
}

输出(对于您的示例数据):

The Lounge: 2 users
The Beach: 0 users

Demo on 3v4l.org

关于php - 计算子/子数组中的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65588366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com