BLACK FRIDAY

осталось 4 дня

Скидка 10% и подарок на выбор — при покупке одной программы
При покупке двух программ  — вторая со скидкой 50%

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

Ответы
Аватар пользователя 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
//=> )
Аватар пользователя Аслан Аутлев
Аслан Аутлев
5 дней назад

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

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

<?php
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']
Добавьте ваш ответ

Рекомендуемые курсы

ORM
шаблонизация (blade)
роутинг
контроллеры
20 часов
Посмотреть
CGI
slim framework
шаблонизация
отправка форм
24 часа
Посмотреть
предметная область
Active Record
модели и связи
query builder
10 часов
Посмотреть