Php. Как «сбросить» индексы в массиве?


Сегодня надо было сбросить ключи в массиве, т.к. при json_encode от массива с пропусками в индексах получался объект, а мне нужен именно чистый массив. Решение придумал очень быстро — сейчас опишу, как можно сбросить индексы в массиве на php.

К примеру у нас есть массив:

$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] ;

Все просто. Далее в цикле удаляем из него некоторые элементы:

$count = count($arr)-1;
for($i=0; $i<=$count; $i++){
    if( in_array($i, [1, 3, 5]) ){
        unset( $arr[$i] );
    }
}

Таким образом мы удалили элементы с ключами 1, 3, 5. В итоге у нас в ключах оказались пробелы. При этом метод json_encode вернет нам вместо массива - объект:

{"0": 1, "2": 3, "4": 5 ...............}

Если же требуется именно массив - следует сбросить индексы - проще всего это сделать методом array_values.

$arr = array_values( $arr ) ;
echo json_encode( $arr );

Вот так просто мы можем сбросить индексы в массиве на php. Удачи!

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *