【问题标题】:Print content just one inside a loop for在循环中仅打印一个内容
【发布时间】:2017-07-14 13:40:03
【问题描述】:

当条件为真时,我需要显示一些信息,但问题是条件多次为真。我想做一个array(),但我不知道该怎么做。

我的观点

<?php
$prev_state = '';
for ($i = 0; $i < $cont; $i++) {
$state = $list[$i]['state'];
$name = $list[$i]['name'];
   if($prev_state != $state ){
      if($state == '3'){
        echo 'Header A';
       }//state = 3 
   else {
      echo 'Headear B';
    }
  }// if
  $prev_state = $state; 
?>
<div>
Name: <?php echo $name; ?>
</div>
<?php
}// for loop
?>

在我的$list我有很多记录,而变量prev_state总是在变化,

  1. 有 ' '
  2. 有 3 个
  3. 有 1 个
  4. 又是 3,但前一个如何又是 1 打印 Header A,我不希望这样。

另一件事,我希望标题(A 和 B)第一次显示条件为真。
示例:

**Header A**
 - Marcus (this has state = 3)
 - Lia    (this has state = 3)

**Header B** 
 - Robert (this has state = 1)
 - Loise  (this has state = 3)
 - Bob    (this has state = 1)
 - Fer    (this has state = 3)

我希望你能帮助我。

【问题讨论】:

    标签: php list codeigniter for-loop view


    【解决方案1】:

    我认为这与您的语法有关。您的语法是问题所在。我用了你的代码,重写了一个新的,没关系。

    <?php
        $prev_state = '';
        $list = array(
            array(
                'name' => 'marcus',
                'state' => 3
            ),
            array(
                'name' => 'lia',
                'state' => 3
            ),
            array(
                'name' => 'robert',
                'state' => 1
            ),
            array(
                'name' => 'loise',
                'state' => 3
            ),
            array(
                'name' => 'bob',
                'state' => 1
            ),
            array(
                'name' => 'fer',
                'state' => 3
            )
        );
        $cont = count($list);
        for ($i = 0; $i < $cont; $i++)
        {
            $state = $list[$i]['state'];
            $name = $list[$i]['name'];
            if($prev_state != $state )
            {
                if($state == '3')
                {
                    echo 'Header A';
                }
                else
                {
                    echo 'Headear B';
                }
            }
            $prev_state = $state; 
            echo '<div> Name: ' . $name .'</div>';
        }
    ?>
    

    我认为因为你关闭了这样的标签是问题所在。我测试了,结果还可以。

    Header A
    Name: marcus
    Name: lia
    Headear B
    Name: robert
    Header A
    Name: loise
    Headear B
    Name: bob
    Header A
    Name: fer
    

    【讨论】:

      猜你喜欢
      • 2015-05-23
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      相关资源
      最近更新 更多