我无法使用 foreach 获取数组值

I can't get array value using foreach

我的问题是我从我的数据库中获取了一个数组值,但是当我想使用 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
                )

        )

)

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

只要 $data['avg'] 等于 $avg

这样的事情就应该有效
<td>
  <?php foreach ($avg as $value) { ?>
      <?php echo $value[0]['average']; ?>
      <br>
      <br>
  <?php } ?>
 </td>

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

像下面这样直接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>