我有一个带有用户值的多维数组,我正在使用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];
}
}
?>
答案 0 :(得分:1)
您的问题是$user_list[$row]
没有进行数字索引,它是一个关联数组(具有键id
,name
和email
)。所以这个循环:
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];
答案 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。