PHP 是否有等价于 Python 的 all()

mat*_*exx 5 php python functional-programming python-2.7

Python 有一个 nice all()( doc ) 方法,如果迭代中的所有元素都为真,则返回真,这相当于:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True
Run Code Online (Sandbox Code Playgroud)

在 PHP 中是否有类似的好方法来做到这一点?

dev*_*ler 5

最接近它的可能是array_filter,如果没有找到真正的元素,它将返回评估为假的空数组。

第二个想法是它更像是 pythons any()。要模拟all()您将需要if(array_filter($array) == $array)甚至if(array_filter($array) == $array && $array)排除空数组。

  • 这不会短路,因此比 Python 的版本贵得多。最好的办法是编写一个短路循环版本并将其放入一个函数中以供重用。 (3认同)