Сброс индекса массива PHP, чтобы начать с 0 после сброса операции - PullRequest
0 голосов
/ 06 октября 2018

У меня есть массив

$cars = array("Volvo", "BMW", "Toyota", "Mercedes");

Я хотел удалить первый элемент "Volvo", и я использую это

unset($cars[0]);

Теперь у меня есть такой массив:

Array
(   
    [1] Bmw
    [2] Toyota
    [3] Mercedes
)

Но я хочу, чтобы мой массив снова начинался с нуля, чтобы это было так:

Array
(
    [0] Bmw
    [1] Toyota
    [2] Mercedes
)

Как это сделать?

Ответы [ 3 ]

0 голосов
/ 06 октября 2018

Используйте array_slice() вместо этого, чтобы выбрать специальную часть массива

$newCars = array_slice($cars, 1)

Результат проверки в demo

0 голосов
/ 06 октября 2018

Предполагая, что вы всегда хотите удалить первый элемент из массива, функция array_shift возвращает первый элемент, а также переиндексирует остальную часть массива.

$cars = array("Volvo", "BMW", "Toyota", "Mercedes");
$first_car = array_shift($cars);
var_dump($first_car);
// string(5) "Volvo"
var_dump($cars)
// array(3) {
//  [0] =>
//  string(3) "BMW"
//  [1] =>
//  string(6) "Toyota"
//  [2] =>
//  string(8) "Mercedes"
//}
0 голосов
/ 06 октября 2018

Используйте функцию array_values для сброса массива после сброса операции.

Обратите внимание, что этот метод будет работать для всех случаев , включая сброс любой индексный ключ из массива (начало / середина / конец).

array_values ​​() возвращает все значения из массива и численно индексирует массив.

Попробуйте ( Rextester DEMO ):

$cars = array("Volvo", "BMW", "Toyota", "Mercedes");
unset($cars[0]);
$cars = array_values($cars);
var_dump($cars); // check and display the array
...