循环遍历数组并定位第一次迭代

时间:2015-07-21 14:46:18

标签: php arrays

我试图遍历一个数组,并添加" active"类只到第一次迭代。

这是我到目前为止所尝试的但无法使其发挥作用。

<?php foreach ($env_list as $key): ?>

      <?php $isFirst = true; ?>

        <li class="<?php $isFirst ? 'active' :  ?>"> <a data-toggle="tab" href="#<?php echo $key['env_name'] ?>" id="<?php echo $key['id'] ?>"> <?php echo $key['env_name'] ?></a></li>

      <?php $isFirst = false; ?>

<?php endforeach ?>

非常感谢您的协助

3 个答案:

答案 0 :(得分:4)

每次循环运行时,您都要设置$ isFirst = true。将该行放在for循环之外,这样就不会重置。

<?php $isFirst = true; ?>
<?php foreach ($env_list as $key): ?>
    <li class="<?php $isFirst ? 'active' :  ?>"> <a data-toggle="tab" href="#    <?php echo $key['env_name'] ?>" id="<?php echo $key['id'] ?>"> <?php echo $key['env_name'] ?></a></li>

  <?php $isFirst = false; ?>

答案 1 :(得分:1)

如果它是一个数字索引数组,您可以使用 foreach($ env_list as $ i =&gt; $ key)并检查$ i == 0。 否则,将你的setter移到循环外面。 &lt;?php $ isFirst = true; ?&GT;需要在循环之前,否则每次都会设置。

答案 2 :(得分:1)

在这段代码中,您基本上是在每次迭代时修改该布尔值(将其设置为true,然后将其设置为false)两次。假设您没有明确定义相关数组的键,请尝试使用此方法;

 <?php foreach ($env_list as $envKey => $envValue): ?>
        <li class="<?php $envKey == 0 ? 'active' :  ?>"> <a data-toggle="tab" href="#<?php echo $envValue['env_name'] ?>" id="<?php echo $envValue['id'] ?>"> <?php echo $envValue['env_name'] ?></a></li>
<?php endforeach ?>

这将检查以确保您正在处理第一次迭代并相应地修改它。

我相信这有帮助。