【问题标题】:How can I display my array values using foreach()?如何使用 foreach() 显示我的数组值?
【发布时间】:2017-05-01 13:41:21
【问题描述】:

我正在尝试从我的数组中输出值,但它们没有在我的 foreach() 循环中打印到屏幕上。

这是我的数组:

Array(
    [0] => Array(
            [projectId] => 2[seDate] => 2017 - 04 - 13[startTime] => 06: 57[taskToDo] => testing[studentSessionNo] =>1[studentId] => 1
        )
    [1] => Array(
            [projectId] => 4[seDate] => 2017 - 05 - 27[startTime] => 04: 53[taskToDo] => dodfddd[studentSessionNo] =>2[studentId] => 1
        )
    [2] => Array(
            [projectId] => 8[seDate] => 2017 - 05 - 17[startTime] => 01: 01[taskToDo] => rrrrrrr[studentSessionNo] => 5[studentId] => 1
        )
)

这是我的代码:

<div>
    <?php
    foreach($info as $info){
          echo "<label>Session Date : ".$value['seDate']."</label>";
          echo "<label>Start Time : ".$value['startTime']."</label>";
          echo "<label>End Time : ".$value['taskToDo']."</label>";
          echo "<label>Task To Do  : ".$value['studentSessionNo']."</label><br />";
    }
    ?>
</div>

我做错了什么?

【问题讨论】:

  • $value 更改为 $info 然后继续阅读 foreach loops
  • @JohnConde 这是我的朋友。非常感谢你

标签: php arrays loops multidimensional-array foreach


【解决方案1】:
foreach($info as $value){
    ........
    .......
   }

【讨论】:

    【解决方案2】:

    这是一个非常基本的问题,可以通过快速浏览 PHP 手册轻松回答。也就是说,对于被视为在 SO 上解决的问题,必须发布答案然后接受。 John Conde 知道这一点,但偶尔会通过 cmets 回答问题——这会导致在 SO 上出现未解决/放弃的问题。我将提供一些与输入相关的解释,以帮助您了解foreach() 以及它与您的多维数组的关系。

    foreach() 要求第一个值是输入数组的变量名。

    根据您希望在循环中处理数组的哪些部分,对于 as 之后的内容,您有两种选择。

    1. 如果您只想使用数组中的值,则声明一个变量名来表示数组中的每个元素值。

    2. 如果要同时访问键和值,则必须为键声明一个变量名,然后为 =&gt;,然后为值声明一个变量名。

    这是你的数组的 php 声明:

    $array=array(
        0=>array("projectId"=>2,"seDate"=>"2017 - 04 - 13","startTime"=>"06: 57","taskToDo"=>"testing","studentSessionNo"=>1,"studentId"=>1),
        1=>array("projectId"=>4,"seDate"=>"2017 - 05 - 27","startTime"=>"04: 53","taskToDo"=>"dodfddd","studentSessionNo"=>2,"studentId"=>1),
        2=>array("projectId"=>8,"seDate"=>"2017 - 05 - 17","startTime"=>"01: 01","taskToDo"=>"rrrrrrr","studentSessionNo"=>5,"studentId"=>1)
    );
    

    如果您想遍历多维数组的每一层,那么您可以使用嵌套在 foreach 循环内的 foreach 循环来实现:

    foreach($array as $index=>$subarray){
        echo "For subarray number $index<br>";
        foreach($subarray as $key=>$value){
            echo "$key has value value<br>";
        }
        echo "<br>";
    }
    

    输出将是:

    For subarray number 0
    projectId has value 2
    seDate has value 2017 - 04 - 13
    startTime has value 06: 57
    taskToDo has value testing
    studentSessionNo has value 1
    studentId has value 1
    
    For subarray number 1
    projectId has value 4
    seDate has value 2017 - 05 - 27
    startTime has value 04: 53
    taskToDo has value dodfddd
    studentSessionNo has value 2
    studentId has value 1
    
    For subarray number 2
    projectId has value 8
    seDate has value 2017 - 05 - 17
    startTime has value 01: 01
    taskToDo has value rrrrrrr
    studentSessionNo has value 5
    studentId has value 1
    

    您会注意到我没有回显$subarray,因为无法回显数组。如果你想显示每个子数组的内容,你可以像这样使用print_rvar_dump()var_export()的foreach循环:

    foreach($array as $index=>$subarray){
        var_export($subarray);
        echo "<br>";
    }
    

    输出:

    array (
      'projectId' => 2,
      'seDate' => '2017 - 04 - 13',
      'startTime' => '06: 57',
      'taskToDo' => 'testing',
      'studentSessionNo' => 1,
      'studentId' => 1,
    )
    array (
      'projectId' => 4,
      'seDate' => '2017 - 05 - 27',
      'startTime' => '04: 53',
      'taskToDo' => 'dodfddd',
      'studentSessionNo' => 2,
      'studentId' => 1,
    )
    array (
      'projectId' => 8,
      'seDate' => '2017 - 05 - 17',
      'startTime' => '01: 01',
      'taskToDo' => 'rrrrrrr',
      'studentSessionNo' => 5,
      'studentId' => 1,
    )
    

    最后,特别是针对您的问题,让您的输出正常工作的简单解决方法是将as 之后的变量名称更改为$value。这将允许您按预期访问子数组的值。

    <div>
        <?php
        foreach($info as $value){
            echo "<label>Session Date : ".$value['seDate']."</label>";
            echo "<label>Start Time : ".$value['startTime']."</label>";
            echo "<label>End Time : ".$value['taskToDo']."</label>";
            echo "<label>Task To Do  : ".$value['studentSessionNo']."</label><br />";
        }
        ?>
    </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-28
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      相关资源
      最近更新 更多