私はPHPで本当に新しく、配列検索についての提案が必要です。検索配列:array_filterとループ
多次元配列内の要素を検索する場合は、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"];
});
あなたがしたいことを正確に記述してください。多次元配列ですか? 'array_filter()'はそれらをネイティブに処理できません。配列内の単一の値を探していますか? 'array_filter()'はこれを行う最良の方法ではありません。あなたが探していた値を見つけた時に反復を止めることができるからです。 'array_filter()'はそれをしません。より大きなセットから値のセットをフィルタリングしますか?おそらく、 'array_filter()'は組込み関数であるため、手でコード化された 'foreach'ループより高速です。 –
@Stefan Gehrigサンプル配列とarray_filterのコードを追加しました。私のポイントは、forループを実行するのと似ていなければならないか、それとも速くなるのでしょうか?私の最大配列サイズは30です。 –