Я пытаюсь удалить куски многомерного массива, если выполнено определенное условие. Массив может быть, как показано ниже, назовет его $ друзей:Как удалить определенный индекс из многомерного массива в php
array (size=3)
0 =>
array (size=1)
0 =>
object(stdClass)[500]
public 'id' => int 2
public 'first_name' => string 'Mary' (length=4)
public 'last_name' => string 'Sweet' (length=5)
1 =>
array (size=1)
0 =>
object(stdClass)[501]
public 'id' => int 9
public 'first_name' => string 'Joe' (length=3)
public 'last_name' => string 'Bob' (length=3)
2 =>
array (size=1)
0 =>
object(stdClass)[502]
public 'id' => int 1
public 'first_name' => string 'Shag' (length=4)
public 'last_name' => string 'Well' (length=4)
У меня есть функция под названием is_followed, что давайте мне увидеть, если идентификатор одного из людей в массиве отрабатывался на «пользователь» , Код, который я пытаюсь сделать:
//remove followed friends from the $friends array
$i=0;
foreach($friends as $friend) {
foreach($friend as $f) {
if(Fanfollow::is_followed($id,$f->id)) {
unset($friend[$i]);
}
}
$i++;
}
Идентификатор $ id является идентификатором текущего пользователя.
Однако, это не работает. Я знаю, что использование unset на $friend
, а не $friends
, вероятно, является проблемой. Но использование unset on $ friends также не будет работать, потому что это массив более высокого уровня. Есть идеи? Спасибо.
Я не совсем уверен, но я думаю, что проблема связана с «foreach». Я считаю, что было что-то вроде «foreach, работающего с копией» или чего-то еще. Попробуйте ($ i; $ i
ATaylor