我有一个有几个键的数组,每个键都可能是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。
我不确定如何执行此操作,因为我不知道如何将loop
与if
一起使用,并且还需要停止检查第一个事件找到true
。
答案 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 ,则只会执行大括号中的代码!