私は通常、Python、Java、または C でコードを作成しています。PHP でプロジェクトに取り組んでおり、PHP の配列について調べていますが、まったく困惑しています。私が正しく理解している場合、PHP の数値インデックスは必ずしも位置に対応するとは限らず、Python の dict のような単なるキーです。したがって、PHP 配列をシャッフルすると、要素の順序は変わりますが、キーは同じままです。したがって、 を呼び出すときにarray[9]
、シャッフルが要素をそのように並べた場合、実際には配列の最初の要素を取得している可能性があります。これにより、多くの疑問が生じます。
では、PHP 配列は常に何らかの順序付けられたハッシュ テーブルにすぎないのでしょうか? そして、それはオーバーヘッドにとって何を意味するのでしょうか? Python では、リストは従来の配列データ構造のように機能し、辞書はハッシュ構造に沿って機能します。PHPは、すべての値に一意のキーを割り当て、それらの値の順序を追跡することにより、2つを組み合わせているようです. 一定時間のルックアップに連想配列構造を使用したい場合、この順序付けのオーバーヘッドのために、Python 辞書を使用する場合よりもはるかに悪い立場にあるのでしょうか? 配列のみ、またはハッシュテーブルのみの PHP データ構造はありますか?
番号付きの PHP 配列から値を削除するとどうなりますか? 配列がある場合、配列
[1, 2, 3, 4, 5]
から 4 を削除してから にアクセスしようとする と、キー 3 の要素array[3]
を削除したため、エラーが発生しますか?
または、PHP はそのような場合に何らかのキー
調整を行いますか?配列の順序を変更する場合 (つまり、並べ替えまたはシャッフルによって)、 を使用して配列を新しい配列にコピーする位置に
インデックスを対応させる唯一の方法です。array_values()