【发布时间】:2015-08-25 17:19:51
【问题描述】:
有写这个的捷径吗?如下:
<?php
$true=1;
$false=0;
$valid = array (
"part1" => $true,
"part2" => $true,
"part3" => $true
);
if($valid == $true){
echo "All the values are True!";
}else{
echo "At list one of the values is False";
}
?>
而不是这个:
<?php
if($valid['part1'] == $true && $valid['part2'] == $true && $valid['part3'] == $true{
echo "All the values are True!";
}else{
echo "At list one of the values is False";
}
?>
我已经尝试按照第一个示例中所示编写它,但它不起作用
【问题讨论】:
-
if (count(array_filter($valid)) == count($valid)) { echo 'All the values are Truthy'; } else { echo 'at least one of the values is falsey'; } -
array_filter可能比下面的array_unique答案慢。 -
@mark use
array_unique并等于 1 将使代码更快,并且通常使用更少的代码 -
@QuakeCore 给出了最好的答案,但必须承认我没有看到这种方法