如果条件循环通过数组

时间:2016-01-23 15:47:35

标签: php arrays loops if-statement

我有一个有几个键的数组,每个键都可能是true / false:

$hide[1] = false; 
$hide[2] = false; 
$hide[3] = true;

如果至少有一个密钥设置为<div>,我希望在我的HTML中显示true块:

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

这样做的最佳做法是什么,考虑到有时我不知道我可能拥有多少把钥匙(在这个例子中,3,但可能更多)。我可以假设最大数量约为20。

我不确定如何执行此操作,因为我不知道如何将loopif一起使用,并且还需要停止检查第一个事件找到true

4 个答案:

答案 0 :(得分: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>';
}

答案 1 :(得分:1)

检查数组中的true值:

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

答案 2 :(得分:1)

if(in_array(true,$hide)){

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

答案 3 :(得分:0)

您应该使用 in_array()功能!

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

将它放入if() - Statement并享受!

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

如果您的数组中至少有一个 true ,则只会执行大括号中的代码!