Как вернуть управление из функции обратного вызова или прервать обработку массива в средней обработке array_filter

Можем ли мы прервать выполнение обратного вызова, когда условие удовлетворяет одному элементу массива?

напр.

$a = array(1,2,3,4,5);
foreach($a as $val){

    if ($val == 3){
      break;
    }

}

если мы напишем для него обратный вызов, он будет таким, как показано ниже

$result = array_filter($a, function(){
      if ($val == 3){
          return true;
        }
});

В обратном вызове он будет проходить через все элементы массива, несмотря на то, что условие выполняется в 3. остальные два элемента 4, 5 также проходят через обратный вызов

Мне нужна такая функция в обратном вызове, которая прерывает обратный вызов на одно совпадение с желаемым условием и останавливает выполнение остальных элементов

Возможно ли?

5
задан Benjamin 6 December 2013 в 11:34
поделиться