Задать вопрос
@dnsite

Удаляется только проверочный элемент массива, а остальные нет?

Здравствуйте! Подскажите пожалуйста что я делаю не так и как лучше сделать. Есть цикл while,а в нем массив и мне нужно удалить i-й элемент массива с данными.
if($tree['status'][$i]=='pending')
{
unset($tree['status'][$i]); - удаляется элемент
unset($tree['currency'][$i]) - остается(, а нужно что бы тоже удалился;
}
  • Вопрос задан
  • 146 просмотров
Подписаться 1 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 2
alsopub
@alsopub
Вам надо менять логику программы.
Как минимум использовать не $tree['status'][$i] и $tree['currency'][$i], а $tree[$i]['status'] и $tree[$i]['currency'].
В этом случае удалять проще.
Далее, удяляя из массива элемент через unset, нумерация остается.
То есть если из $a = array(11, 22, 33, 44, 55); удалить unset($a[0]), то в массиве останется 22, 33, 44, 55, но их индексы будут не 0 - 3, а 1 - 4. Для перестройки массивов используется array_values.
Скорее всего у вас все удаляется, но из-за подобных побочных эффектов удаления вы этого не замечаете.
Ответ написан
@dnsite Автор вопроса
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы