У меня есть массив, где я хочу использовать array_slice для удаления первого элемента массива. Вот команда:
$myArray = array_slice($myArray, 1);
Теперь array_slice имеет 4-й аргумент, когда он установлен в true, он сохраняет ключи массива вместо их сброса. Мне нужно, чтобы этот параметр был равен true.
Третий аргумент – указать длину результирующего массива. Вы должны оставить этот аргумент вне, если хотите, чтобы массив был отрезан до конца массива вместо указания длины.
Поэтому я попробовал это:
$myArray = array_slice($myArray, 1, NULL, true);
И это приводит к пусту массива. Что я делаю не так? Есть ли другой способ «оставить» аргумент длины, не устанавливая его в NULL? Поскольку установка его в NULL, похоже, полностью очищает мой массив.
Кроме того, мое обходное решение заключается в следующем:
$myArray = array_slice($myArray, 1, count($myArray)-1, true);
но мне кажется, что я не должен был этого делать …
ОБНОВИТЬ
Это, похоже, ошибка с PHP 5.1.6
Я просто протестировал этот код:
$myArray = array( 'test1' => 'test1', 'test2' => 'test2', 'test3' => 'test3', 'test4' => 'test4', ); var_dump(array_slice($myArray, 1, null, true));
И он отлично работает для меня, только показывая test2, test3 и test4.
Это было выполнено в 5.2.13. Попробуйте обновить PHP (я тоже знаю, но это dev dev).
попробуй это
$myArray = array_slice($myArray, 1, -1, true);
Не могли бы вы также использовать array_shift
для удаления 1-го элемента массива?
EDIT: Кажется, вы хотите сохранить числовые ключи, не обращая внимания.