[PHP]配列におけるインデックスの考え方
$scores = [10, 50, 30, 20]と言った配列があるとします。
配列内の10の値を取りだそうとすれば
print $scores[0];
とすればブラウザに10の値が表示されます。
というか、配列というのは、[0][1][2][3]…と数えるものだと思っていました。
今、array_fill()関数について学習しています。
$prices = array_fill(0, 5, 10);
としてprint_rで出力すると
Array
(
[0] => 10
[1] => 10
[2] => 10
[3] => 10
[4] => 10
)
と自分で理解できる範囲の結果が表示されます。
ところが、
$prices = array_fill(-2, 5, 10);
をprint_rで出力すると以下のように返ってきます。
Array
(
[-2] => 10
[0] => 10
[1] => 10
[2] => 10
[3] => 10
)
単純に考えると、以下のように返ってこないのはなぜなのでしょうか?
Array
(
[-2] => 10
[-1] => 10
[0] => 10
[1] => 10
[2] => 10
)
また
$prices = array_fill(5, 5, 10);
と記述すると、
Array
(
[5] => 10
[6] => 10
[7] => 10
[8] => 10
[9] => 10
)
と返ってきます。
配列のインデックス、添字を名前や商品名にして連想配列が出来るのはわかります。
(1)マイナス値からはじめた場合、なぜ[-2][-1][0]…のように返ってこないのはなぜでしょうか?
(2)配列の添え字、インデックスが、[5]ではじまり[6][7][9][10]…とすることに
何か意味があるのでしょうか? $prices = [10, 10, 10, 10, 10]のような記述があった場合、初学者には[0]からはじまっているからこそ
array_spliceなどでキー名がわからずとも、配列を操作を容易にできるのではないかと思ってしまいます。
上記2点、配列内でのマイナス値の扱い方、配列の添字が[0]以外からはじまる理由がよくわかりません。
分かる方いらっしゃいましたら教えて下さい。よろしくお願いいたします。