2011-09-07 59 views
0

我要检查一个这样的数组,如果每一个值是“真”寻找类似“array_and”

$arr = array(true, true, true) // would be true 
$arr = array(true, true, false) // would be false 
$arr = array(false, true, false) // would be false 

PHP提供了一个函数,“array_sum()”。有没有像“array_and()”

目前我使用类似的东西很短的函数:

$result = true; 
foreach ($arr as $item) { 
    $result = $result && $item; 
} 

有什么短的解决方案?

+2

查看手册。如果没有,写一个。下一个。 –

+1

不'in_array(false,$ arr,true)'工作? – Quasdunk

回答

0

array_product会工作得很好适合你。

什么?肮脏的黑客?那么,这是php做事的方式。

+0

这种方式我最喜欢: – akentner

0

如果我了解您可以使用in_array("false")的问题。

1

看起来你正在ANDing数组内容。如果是这种情况,只需要询问数组中的任何位置是否存在假。所以:

$result=in_array(false, $arr,true); 
+0

用第三个标志打开STRICT模式,否则您只会得到一个宽松的比较。 –

+0

@Tomalak Geret'kal:好点。修复。 – dnagirl

+0

+1。 :-) –

0
$foo = array(true, true, false); 

if(in_array(false, $foo)) { 
    echo 'false is present'; 
} 

可能是一个选项,除非我失去了一些东西