您好我正在寻找一些从数组中删除元素的帮助。我的数组$rooms
包含每个房间的事件。每个房间都有自己的阵列,每个活动在房间阵列中都有自己的阵列。我遍历$rooms
并显示房间ID,在此循环中,我循环播放该房间的事件并显示其内容。我想删除已经显示的事件的数组,因此当我重复相同的循环时,我没有花时间比较它。
以下是我所描述的流程示例。我知道删除这个逻辑中的元素是没有意义的,因为我使用的是foreach,但在我的应用程序中,函数的逻辑需要它。
$室
array(3)
{
[1]=> array(2)
{
["rid"]=> string(1) "1"
["events"]=> array(0)
{ }
}
[2]=> array(2)
{
["rid"]=> string(1) "2"
["events"]=> array(0)
{ }
}
[3]=> array(2)
{
["rid"]=> string(1) "3"
["events"]=> array(2)
{
[0]=> array(7)
{
["lname"]=> string(20) "xxxxxxxxxxxxxxxxxxxx"
}
[1]=> array(7)
{
["lname"]=> string(10) "yyyyyyyyyy"
}
}
}
}
循环
foreach ($rooms as $room):
echo $room['rid'];
foreach ($room['events'] as $event):
echo $event['lname'];
如果你能告诉我foreach
我应该把代码放在哪里,代码应该怎么样才会真的很棒。我认为它应该在echo $event['lname']
之后,但我无法弄清楚如何找到显示的元素,以便我可以取消它..
谢谢大家的阅读, 期待你的回复。
答案 0 :(得分:1)
您可以在回显之后简单地取消设置事件,但是您需要从$ rooms引用它,因此您需要在每个级别使用键。试试这个:
foreach($rooms as $i => $room) {
echo $room['rid'];
foreach($room['events'] as $j => $event) {
echo $event['lname'];
unset($rooms[$i]['events'][$j]);
}
}
您可以看到它的一个示例here。