2016-01-23 16 views
0

我有哪几种密钥的阵列,每一个都可以是真/假到true如果条件是通过数组循环

<?php if ($some_condition_here==true) { ?> 
<div>show me if at least one value is "true"</div> 
<?php } else { } ?> 

什么是做到这一点,考虑到有时我不知道提前多少个键我可以有最好的做法(在这个例子中,3中,虽然可能更多)。我可以假设,最大数量将是20左右。

我不知道如何做到这一点,因为我不知道如何使用loopif,并且它还需要停止检查第一个事件,它会发现true

回答

1

检查数组true值:

if (in_array(true, $hide)) { /* do something */ } 
1
if(in_array(true,$hide)){ 

echo '<div>show me if at least one value is "true"</div>'; 
} 
2

您正在寻找的功能in_array,检查如果某个值是一个数组。

if(in_array(TRUE, $hide)) 
{ 
    echo '<div>show me if at least one value is "true"</div>'; 
} 

也似乎你不知道函数是如何工作的。您可能想了解它们:http://php.net/manual/en/language.functions.php

即使没有in_array也可以使用自定义函数自己实现它。这基本上就是你如何使用if循环。在这种情况下不推荐使用,因为我们已经知道有一个功能可以完全满足您的需求。我只是在下面的例子中包含了你的教育,不会被使用。使用in_array就像我的第一个例子!

function my_custom_in_array($needle, $stack) 
{ 
    foreach($stack as $v) 
    { 
     if($v === $needle) 
     { 
      return TRUE; 
     } 
    } 
    return FALSE; 
} 

if(my_custom_in_array(TRUE, $hide)) 
{ 
    echo '<div>show me if at least one value is "true"</div>'; 
} 
0

您应该使用in_array() - 函数此!

它检查第一个参数(true)是否是你的数组($ hide)。 当找到第一个true时,它会立即停止。

只要把它放在一个if() - 声明和享受!

if(in_array(true, $hide)) 
{ 
    echo '<div> show me if at least one value is "true" </div>'; 
} 

如果阵列中有至少一个在括号中的代码才会执行​​!