У меня есть функция array_reduce, которую я готов выйти, когда будут выполнены определенные критерии.
$result = array_reduce($input, function($carrier, $item) {
// do the $carrier stuff
if (/* god was one of us */) {
break; //some break analogue
}
return $carrier;
});
Как мне этого добиться? Или я должен использовать foreach вместо этого?
array_reduce
используется для написания кода функционального стиля, который всегда перебирает весь массив. Вы можете либо переписать, чтобы использовать обычный цикл foreach для реализации логики короткого замыкания, либо просто вернуть текущий $carrier
неизмененной. Это все равно будет повторять весь ваш массив, но это не изменит результат (как вы сказали, это больше похоже на continue
)
Других решений пока нет …