Если я присваиваю значения массиву следующим образом:
$foo[0] = 2; $foo[1] = 3; print_r($foo);
Я получил:
Array ( [0] => 2 [1] => 3 )
Но если я это сделаю:
$foo[1] = 3; $foo[0] = 2 ; print_r($foo);
Я получил:
Array ( [1] => 3 [0] => 2 )
Как вы можете видеть, сначала идет массив с индексом 1, и это меня смущает, возможно ли, чтобы оно начиналось с 0
Если вам интересно, я присваиваю значение массиву с индексом 1, потому что мне нужно использовать это значение для вычисления массива с индексом 0
попробуйте использовать ksort (); , Он сортирует ваши ключи по возрастанию
<?php $foo[1] = 3; $foo[0] = 2 ; ksort($foo); print_r($foo);
приводит к
Array ( [0] => 2 [1] => 3 )
демонстрация
Попробовать ksort ()
Причина, по которой это происходит в PHP, заключается в том, что массивы немного отличаются от массивов на других языках. Массивы в PHP несколько похожи на HashMaps в Java и словарях на C #, хотя все еще немного разные.
Вы также можете добавить
$foo[0] = '';
, перед добавлением какого-либо значения в $ foo [1]