I am really new in PHP and need a suggestion about array search.
If I want to search for an element inside a multidimensional array, I can either use array_filter
or I can loop through the array and see if an element matching my criteria is present.
I see both suggestion at many places. Which is faster? Below is a sample array.
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 ) ) ) )
I am searching like this.
$thisQuestion = array_filter($pollQuestions, function($q) { return questionId == $q["id"]; });
Advertisement
Answer
Iterates over each value in the input array passing them to the callback function. If the callback function returns true, the current value from input is returned into the result array. Array keys are preserved.
as for me same.