以前 PHPのlist()はタプル展開のための機能 - Qiita にも書きましたが、PHPの配列型は非常に多くの機能はあり、0から始まる連番のインデックスを持つ「配列」としての側面と、ほかの言語で連想リスト(Association list, alist)やハッシュマップ、辞書などと呼ばれるコレクションとしての側面を合せ持ちます。 この仕様はとてもいいところと悪いところがあるのですが、PHPの型をPHP以外に出力(シリアライズ)するときには若干困ることがあります。たとへば、PHPの配列をjson_encodeでJSONにシリアライズするときなどです。 問題 <?php $num = range(1, 10); echo json_encode($num).PHP_EOL; // => [1,2,3,4,5,6,7,8,9,10] // これは想定通り $num = range(1, 10