удаление в последний раз выстраивает значение? php

1 тип вопроса

$transport = array('foot', 'bike', 'car', 'plane');

я могу удалить плоскость? существует ли путь?

2 типа вопроса

 $transport = array('', 'bike', 'car', ''); // delate the last line
 $transport = array('', 'bike', 'car', 'ferrari'); // dont the last line
 $transport = array('ship', 'bike', 'car', 'ferrari'); // dont the last line

существует ли простой способ удалить последний массив, "если в последний раз выстраивают значение, пусто, затем удаляют", если не пустой затем не удаляют? но не удалить первый массив?

17
задан hakre 22 November 2012 в 17:18
поделиться

3 ответа

if(empty($transport[count($transport)-1])) {
    unset($transport[count($transport)-1]);
}
39
ответ дан 30 November 2019 в 09:59
поделиться

Самый простой способ: array_pop () , который вытолкнет элемент конца массива.

По поводу 2-го вопроса:

if (end($transport) == "") { 
    array_pop($transport); 
}

Следует обработать второй.

РЕДАКТИРОВАТЬ:

Изменен код, чтобы соответствовать обновленной информации. Это должно работать с ассоциативными или индексированными массивами.

Исправлен array_pop с учетом комментария Скотта. Спасибо, что заметили это!

Исправлена ​​фатальная ошибка, я думаю, что empty нельзя использовать с end, как у меня. Приведенный выше код больше не будет перехватывать null / false, если это необходимо, вы можете назначить переменную из конечной функции и проверить это следующим образом:

$end_item = end($transport);
if (empty($end_item)) { 
    array_pop($transport); 
}

Извините за отправку неверного кода. Вышеупомянутое я тестировал.

31
ответ дан 30 November 2019 в 09:59
поделиться

для №1,

$transport=array_slice($transport,0,count($transport)-1)
10
ответ дан 30 November 2019 в 09:59
поделиться
Другие вопросы по тегам:

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