Существует ли функция PHP, похожая на array_search, которую я могу использовать для поиска подходящих элементов в 1-м столбце 2D-массива?
Вы можете использовать array_filter
$matchedArray = array_filter($myArray, function($x) use ($nameToSearchFor) {
return $x[0] == $nameToSearchFor;
});
Тогда дано:
$myArray = array(
array(0=>"homer", 1=> 1, 2=> 2, 3=> 3),
array(0 => "marge", 1=> 2, 2 => 4, 3=> 8),
array(0 => "bart", 1 => 6, 2 => 2, 3 => 7),
array(0 => "lisa", 1 => 16, 2 => 20, 3 => 71),
);
$nameToSearchFor = "bart";
Произойдет:
$matchedArray === array(0 => "bart", 1 => 6, 2 => 2, 3 => 7);
Я использовал замыкания , которые работают тольков PHP 5.3.0, но вы используете традиционный обратный вызов или create_function в старых версиях php
Если это не так, есть функция PHP для копирования первого столбца в 1Dмассив (при сохранении порядка), чтобы я мог вызвать для него array_search?
См. deceze первый вариант.Я не вижу необходимости повторять совершенно хороший ответ.