検索配列:array_filter vs loop

arrays multidimensional-array php
検索配列:array_filter vs loop

私は本当にPHPの初心者であり、配列検索に関する提案が必要です。

多次元配列内の要素を検索する場合は、「array_filter」を使用するか、配列をループして、条件に一致する要素が存在するかどうかを確認できます。

私は多くの場所で両方の提案を見ています。 どちらが速いですか? 以下はサンプルの配列です。

Array (
  [0] => Array (
    [id] => 4e288306a74848.46724799
    [question] => Which city is capital of New York?
    [answers] => Array (
      [0] => Array (
        [id] => 4e288b637072c6.27436568
        [answer] => New York
        [question_id_fk] => 4e288306a74848.46724799
        [correct] => 0
      )
      [1] => Array (
        [id] => 4e288b63709a24.35955656
        [answer] => Albany
        [question_id_fk] => 4e288306a74848.46724799
        [correct] => 1
      )
    )
  )
)

私はこのように探しています。

$thisQuestion = array_filter($pollQuestions, function($q) {
  return questionId == $q["id"];
});

  1  0


ベストアンサー

質問は古いですが、例外的な回答には同意しません。 また、 `foreach()`ループと `array_filter()`関数の間に違いがあるかどうか疑問に思って、次の投稿を見つけました。

レヴィ・ジャクソンは素晴らしい仕事をして、いくつかのループと `array _ *()`関数の速度を比較しました。 彼によると、 `foreach()`ループは `array_filter()`関数よりも高速です。 ほとんどの場合、それほど大きな違いはありませんが、大量のデータを処理する必要がある場合は重要になります。

1


古い質問であることは知っていますが、2セントを差し上げます。私にとって、foreachループの使用はarray_filterの使用よりもはるかに高速でした。 foreachを使用すると、IDで検索を実行するのに1.4秒かかり、フィルターを使用すると8.6秒かかりました。

1


_
入力配列の各値を反復処理して、コールバック関数に渡します。 コールバック関数がtrueを返す場合、入力からの現在の値が結果の配列に返されます。 配列キーは保持されます。
_

私も同じ。

0


タイトルとURLをコピーしました