如何在php

时间:2019-04-05 06:01:24

标签: php arrays

我有一个带有用户值的多维数组,我正在使用for循环来回显这些值,但出现错误未定义的偏移量,这是我的代码,我无法理解如何回显这些值。

$user_list=array();  //values stored from table in multidimensional array
echo '<pre>';print_r($user_list);

    Array
    (
        [0] => Array
            (
                [id] => 1
                [name] => abc
                [email] => abc@gmail.com
            )

        [1] => Array
            (
               [id] => 2
                [name] => xyz
                [email] => xyz@gmail.com
            )

        [2] => Array
            (
               [id] => 3
                [name] => mym
                [email] => mym@gmail.com
            )


    )

<?php 
     for($row = 0; $row <count($user_list) ; $row++){
          echo $row."<br>";
           for ($col = 0; $col < count($user_list[$row]); $col++) {
          echo $user_list[$row][$col];
  }

}
?>

2 个答案:

答案 0 :(得分:1)

您的问题是$user_list[$row]没有进行数字索引,它是一个关联数组(具有键idnameemail)。所以这个循环:

for ($col = 0; $col < count($user_list[$row]); $col++) {
    echo $user_list[$row][$col];

将不起作用(并为您提供未定义的偏移量错误)。您可能应该改用foreach循环:

foreach ($user_list[$row] as $value) {
    echo $value;

或者,您可以使用array_values来获取数值索引的值:

for ($col = 0; $col < count($user_list[$row]); $col++) {
    echo array_values($user_list[$row])[$col];

Demo on 3v4l.org

答案 1 :(得分:1)

您的内部循环期望索引为数字,但您的内部索引为字符串。因此,foreach将是您更好的替代选择。

for ($row = 0; $row < count($user_list); $row++) {
    foreach ($user_list[$row] as $col => $val) {
        echo $user_list[$row][$col].' '; // or echo $val directly
    }
    echo "<br>";
}

Demo