我真的是PHP新手,需要關於數組搜索的建議。搜索陣列:array_filter vs loop
如果我想搜索一個多維數組內的元素,我可以使用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。 –