2015-07-21 61 views
0

我试图循环访问一个数组,并将“活动”类添加到第一次迭代中。循环遍历一个数组并且目标第一次迭代

这是我到目前为止尝试过的,但无法让它工作。

<?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 ?> 

您的援助表示高度赞赏

回答

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

如果它是一个数字索引的数组,你可以使用

foreach ($env_list as $i=>$key),并检查是否$i==0

否则,将您的setter移动到循环之外。 <?php $isFirst = true; ?>需要在循环之前,否则每次都会被设置。

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 ?> 

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

我相信这会有所帮助。