Подтвердить что ты не робот

Удаление последнего значения массива? 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

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

4b9b3361

Ответ 1

if(empty($transport[count($transport)-1])) {
    unset($transport[count($transport)-1]);
}

Ответ 2

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

Что касается второго вопроса:

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

Должен обрабатывать второй.

EDIT:

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

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

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

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

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

Ответ 3

для # 1,

$transport=array_slice($transport,0,count($transport)-1)

Ответ 4

Вы можете просто сделать это с помощью array_pop():

array_pop($transport);

Ответ 5

$endvalue = & end($transport);
array_pop($endvalue);