<? foreach ($cases as $case) :?>
<? if (isset($case['case_status']) && ($case['case_status'] == 'Incomplete')) :?>
<div>
<div class="alert alert-error">
<?= $warning ?>
</div>
如果条件满足,我试图让foreach只打印一次div。 问题是,对于满足条件的每种情况都打印div。
我尝试过使用in_array,但我认为我不理解语法。 in_array是否正确?有一个更好的方法吗?
答案 0 :(得分:1)
您可以使用标记来标记,您已经打印了div并在以下情况下添加了额外条件:
<?
$flag = false;
foreach ($cases as $case) :?>
<? if (isset($case['case_status'])
&& ($case['case_status'] == 'Incomplete')
&& ($flag == false)) :?>
<div>
<div class="alert alert-error">
<?= $warning ?>
</div>
<?php $flag = true; ?>
或者,如果您不需要在该循环中执行任何操作,则可以在遇到第一个元素后将其分解。
<?
foreach ($cases as $case) :?>
<? if (isset($case['case_status']) && ($case['case_status'] == 'Incomplete')) :?>
<div>
<div class="alert alert-error">
<?= $warning ?>
</div>
<?php break; ?>
答案 1 :(得分:1)
<?php
$printed = array();
foreach ($cases as $case) :?>
<? if (!in_array( $case['case_status'] ) && isset($case['case_status']) && ($case['case_status'] == 'Incomplete')) : ?>
<div>
<div class="alert alert-error">
<?= $warning ?>
</div>
<?php
$printed[] = $case['case_status'];
endif;
?>
这样您就可以保存每个打印的case_status并将其与in_array进行比较。