有没有办法在PHP中短路array_ *函数?例如,array_reduce?
答案 0 :(得分:2)
不是天生的。请特别注意array_walk()
的文档:
array_walk()不受数组内部数组指针的影响。 无论指针如何,array_walk()都将遍历整个数组 位置。
鉴于此,您可以通过在您想要中止的位置抛出异常来伪造它,然后捕获并忽略它:
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
try {
array_walk($array, function($value) {
echo "$value\n";
if ($value == 5) {
throw new Exception();
}
});
} catch (Exception $e) {
}
收率:
1
2
3
4
5