По сути, я хочу получить функциональность find_if() в C++, обнаружение в Smalltalk: и т. д.:
Код: Выделить всё
// would return the element or null
check_in_array($myArray, function($element) { return $elemnt->foo() > 10; });
Но я не знаю ни одной функции PHP, которая бы делала это. Я придумал одно «приближение»:
Код: Выделить всё
$check = array_filter($myArray, function($element) { ... });
if ($check)
//...
Обратной стороной этого является то, что цель кода не сразу ясна. Кроме того, он не прекратит перебор массива, даже если элемент был найден, хотя это скорее придирка (если набор данных достаточно велик, чтобы вызвать проблемы, линейный поиск в любом случае не будет ответом)
Подробнее здесь:
https://stackoverflow.com/questions/142 ... d-function