Hello I am looking for some help with removing an element from an array. My array $rooms
holds events per rooms. Each room has its own array and each event has its own array within the room array. I loop through $rooms
and display the room ID and within this loop I loop through the events for that room and display their contents. I would like to remove the array for the event that has been displayed so I don't have spend time comparing it when I repeat the same loop.
Below is an example of the process I am describing. I know it makes no sense to delete the element in this logic as I am using foreach, but within my application the logic of the function requires it..
$rooms
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"
}
}
}
}
loop
foreach ($rooms as $room):
echo $room['rid'];
foreach ($room['events'] as $event):
echo $event['lname'];
If you could tell me where within the foreach
I should put the code and how should the code look like that would be really great. I think it should be right after echo $event['lname']
, but I can't figure out how to locate the element that is displayed so I can unset it..
Thank you all for reading, looking forward to your replies.
You can simply unset the event after echoing it, but you'll need to reference it from $rooms, so you need to use the key's at each level. Try this:
foreach($rooms as $i => $room) {
echo $room['rid'];
foreach($room['events'] as $j => $event) {
echo $event['lname'];
unset($rooms[$i]['events'][$j]);
}
}
You can see an example of it working here .
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.