Как переиндексировать 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
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