【问题标题】:I can't get array value using foreach我无法使用 foreach 获取数组值
【发布时间】:2019-09-29 16:58:55
【问题描述】:

我的问题是我从数据库中获取了一个数组值,但是当我想使用 foreach 在我的页面上显示时,它什么也没显示。我找不到我的问题。在下面我给出了我的代码:

控制器:

$subject_code = $this->student_model->subject_code($id);
        $avg = array();
        foreach($subject_code as $values) {
            $array_values = $values['code'];
            $avg[] = $this->student_model->average($id,$array_values);
        }
        $data['avg'] = $avg;

查看:

<td>
 <?php 
    foreach ($avg as $avg) { ?>
      <?php echo $avg['average']; ?>
      <br>
      <br>
    <?php } ?>
</td>

我回显$data['avg']时得到的输出:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [average] => 77.666667
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [average] => 74.333333
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [average] => 89.333333
                )

        )

    [3] => Array
        (
            [0] => Array
                (
                    [average] => 88.666667
                )

        )

    [4] => Array
        (
            [0] => Array
                (
                    [average] => 39.666667
                )

        )

    [5] => Array
        (
            [0] => Array
                (
                    [average] => 37.666667
                )

        )

    [6] => Array
        (
            [0] => Array
                (
                    [average] => 43.333333
                )

        )

)

【问题讨论】:

  • echo $avg[0]['average'] 在循环中
  • 每个项目都有一个额外的数组层 - 所以尝试在你的 echo 中添加 [0] - echo $avg[0]['average'];
  • 你的模型函数是什么样的? student_model->subject_code 和 student_model->平均 ?

标签: php codeigniter codeigniter-3


【解决方案1】:

假设您在视图中使用 foreach,看起来您正在使用相同的变量作为键和值,并且您正在循环数组数组。

只要$data['avg'] 等于$avg,这样的事情应该可以工作

<td>
  <?php foreach ($avg as $value) { ?>
      <?php echo $value[0]['average']; ?>
      <br>
      <br>
  <?php } ?>
 </td>

【讨论】:

    【解决方案2】:

    您所做的是为每个平均值创建一个数组,然后将其推入数据数组。

    像下面这样直接push到data数组中

    $subject_code = $this->student_model->subject_code($id);
    
        foreach($subject_code as $key=>$values) {
            $array_values = $values['code'];
            $data['avg'][$key] = $this->student_model->average($id,$array_values);
        }
    

    现在您可以在 foreach 循环中使用它,就像您已经在做的那样

    <td>
    <?php 
      foreach ($avg as $avg) { ?>
        <?php echo $avg['average']; ?>
        <br>
        <br>
    <?php } ?>
    </td>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-27
      • 2016-10-31
      • 2019-09-17
      • 1970-01-01
      相关资源
      最近更新 更多