0

関数の 1 つが配列の配列または標準配列のみを受け入れるようにするかどうかを決めようとしています。

配列を含む配列を使用すると、各配列キーを確認できますが、標準の配列を使用してパフォーマンスが向上することが確認できる場合は必要ありません。

2つの間にパフォーマンスの違いはありますか(パフォーマンスに関して)?

例えば

配列の配列

$arr2 = array(
   array('isbn' => '1846031249'),
   array('isbn' => '0340912081'),
   array('isbn' => '0435446576'),
   array('isbn' => '1741845467'),
   array('isbn' => '0750924721'),
   array('isbn' => '1843286432'),
   array('isbn' => '011331079X'),
   array('isbn' => '9063325819')
);

通常配列

$arr2 = array(
   '1846031249',
   '0340912081',
   '0435446576',
   '1741845467',
   '0750924721',
   '1843286432',
   '011331079X',
   '9063325819'
);
4

4 に答える 4

2

配列の配列をしないでください! メモリ/プロセスに保存する必要がある情報の量を不必要に増やしています。そして、あなたの場合、各値が単なる ISBN である場合は、配列を追跡して、その内容を覚えて、繰り返しのラベル付けを破棄してください。

于 2012-08-03T21:38:54.457 に答える
2

必要になるまで複雑さを加えないでください。状況が変化したときに新しい入力形式を使用するために、関数に戻って編集することには何の問題もありません。(これは公開 API などではないと思います。)

さらに、配列の配列は並べ替えを非常に困難にしますが、さらに悪いことに、配列全体を反復せずに配列値の存在を確認することは不可能です。

通常の配列には、それを機能させるための関数がたくさんあります。

于 2012-08-03T21:42:36.283 に答える
2

キーが 1 つだけの連想配列として、すべての ISBN コードを格納するのは無意味です。考えてみてください、どちらが長くかかりますか?:

  1. ISBN = xxxxxxxxx を検索しています。$array[0] を開く -> $innerarray[0] を開く -> 見つかりません -> $innerarray を閉じます -> $array[1] を開く -> $innerarray[0] を開く -> 見つかりません など...
  2. ISBN = xxxxxxxxx を検索しています。$array[0] を開く -> 見つからない -> $array[1] を開く -> 見つからない -> $array[2] を開く など...

2 番目の方法は、10.000 個の値を格納する場合にはるかに高速です。10.000 個の配列を開いて $innerarray[0] の値を検索するには、1 つの配列のみを開くよりも多くの操作が必要です。

于 2012-08-03T21:47:06.977 に答える
1

はい、最初のオプションは初期化に少し時間がかかり、より多くのメモリを必要とします。

しかし、何千回もループして処理するか、非常に大きな配列を作成しない限り、違いに気付かないでしょう。

于 2012-08-03T21:37:38.013 に答える