PHP配列の型は、実際には従来のC配列よりも順序付けされたマップに似ています。それはPHPのオリジナルの汎用データ構造です。マニュアルは遠くまでThe indexed and associative array types are the same type in PHP, which can both contain integer and string indicesと言います。PHPの「関連」配列と「インデックス」配列の実用的な違いは何ですか?
しかし、組み込みの言語機能では、「インデックス付き」配列(シーケンシャルな整数キーを持つ配列)と「連想配列」(非シーケンシャルおよび/またはキーの配列が区別されます)混合型)。
この例の1つはarray_mergeです。
入力配列に同じ文字列キーがある場合、そのキーの後の値は前の値を上書きします。ただし、配列に数値キーが含まれている場合、後の値は元の値を上書きしませんが、追加されます。
配列が1つしかなく、配列の数値がインデックスされている場合、キーは連続的に再インデックスされます。
PHPでは、インデックス付き配列と結合配列が区別される他の場所は何ですか?私は特にUserlandの違いに興味がありますが、PHPのソースで実装されたArrayについての洞察も興味深いでしょう。
+1良い情報ですが、next()関数を使用してインデックス付き配列と関連配列の両方をループすることができます。言い換えれば、連想配列は依然として順序の内部概念を持っています。 –
真で、それらの行に沿って、インデックス付き配列は必ずしも予期された順序を持つ必要はありません - むしろ、配列が使用する順序( 'foreach'または' next() ')は、したがって、$ arr [3]が$ arr [2]の前に設定されていた場合、その順序は反復処理されたときに保持されます。 –