[英]counting entries in sub/subarray
我正在聊天。 我有一个数组,其中包含有关房间的信息(在下面的示例中,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
我试图在我的数组中计算房间中当前存在的用户数量。 环顾stackoverflow,我设法找到了我想要的解决方案:
foreach($roomNusers as $room => $value)
{
echo $room.' user count:'.count($room['users'])
}
这个 output:
The lounge user count: 2
the beach user count: 1
我的问题是它计算了海滩上的用户 [null]。
如何计算每个房间的用户数量不是 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";
}
Output(用于您的示例数据):
The Lounge: 2 users
The Beach: 0 users
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.