PHP:array_ functions - 短路?

时间:2017-07-14 17:12:34

标签: php arrays

有没有办法在PHP中短路array_ *函数?例如,array_reduce?

1 个答案:

答案 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