PHPプログラマとして、私はかなり多くのもののために配列を使います。私はSPLFixedArrayが特定の場合に有用であることを知っています。私はPHP arrays aren't very memory efficientを知っていますが、実際に私が必要とすることをするのに苦労しているケースはほとんどありません。データ構造としてPHPの配列型の特性は何ですか?
これは私がJavaで作業しているときとは対照的に、私が使用しているデータ構造と、それぞれの長所と短所を正確に理解することが絶対に重要だとわかっています。誰かが私がJavaのすべてのためにLinkedHashMapを使用するように提案した場合、彼らはビルから笑ってしまうでしょう。
PHPでこのような高速かつ緩やかなエンジニアリングをどのように取り除くことができますか? PHP配列の根底にある特質は何ですか?それはしばしば「順序付けられたマップ」と呼ばれますが、実装の多くは推測の余地が残ります。
いくつかの使用例PHP配列はが特に良いにありますか? PHP配列が実際にであると思われる、まったく正直なユースケースは、どれですか?でかなり悪いですか?
たとえば、高密度整数キー配列(たとえば$arr = array('a','b','c','d','e');
)を順序付けされたハッシュマップよりもうまく処理すると仮定しますが、密と疎の境界はどこですか? $arr[10] = 'f';
のような順序付けられていない1つのキーを導入すると、アレイの効率が大幅に低下するのですか? $arr[1000000] = 'g';
はどうですか?私はPHPが約100万スロットを挿入していないと仮定しますが、カバーの下にリンクされたリストであれば、おそらく$arr[rand()] = rand();
を繰り返し呼び出すと、各挿入後に並べ替えが必要になるでしょうか?
私が提起した具体的な質問に対処できない場合でも、PHP配列の基本的な内容を解説した回答は歓迎します。
PHPがうまくいくことを誰も期待していないので、 –
実際、[並べ替えはありません](http://codepad.org/V0Y9K9MZ)。存在しないキーに割り当てると、配列の最後に置かれます。 – Ryan
誰かが同じ文章で 'PHP'と' strengths'を使った後、宇宙が再起動しなかったのに驚いています。 –