Как переиндексировать php массив

Аватар пользователя Аслан Аутлев
Аслан Аутлев
22 ноября 2022

Если требуется переиндексировать массив и начать его не с 0, а с любого другого номера, то можно воспользоваться комбинацией нескольких встроенных функций PHP:

array_combine — Создаёт новый массив, используя один массив в качестве ключей, а другой для его значений.

array_combine(array $keys, array $values): array

Более подробное описание функции можно найти в документации php.net.

range() или array_fill() Подробнее: Как заполнить php массив значениями

Пример:

<?php

$array = [2 => 'fruit1', 5 => 'fruit2', 10 => 'fruit3', 14 => 'fruit4'];
$keys = range(1, 4);

$result = array_combine($keys, $array);
print_r($result); // => [1 => 'fruit1', 2 => 'fruit2', 3 => 'fruit3', 4 => 'fruit4']
1 0
Аватар пользователя Roman Ashikov
Roman Ashikov
02 декабря 2021

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

<?php

$collection = [3 => 'foo', 11 => 'bar', 999 => 'fizz', 777 => 'bazz'];
print_r($collection);
//=> Array
//=> (
//=>    [3] => foo
//=>    [11] => bar
//=>    [999] => fizz
//=>    [777] => bazz
//=> )

$reindexedCollection = array_values($collection);
print_r($reindexedCollection);
//=> Array
//=> (
//=>    [0] => foo
//=>    [1] => bar
//=>    [2] => fizz
//=>    [3] => bazz
//=> )
0 0
Познакомьтесь с основами PHP бесплатно