我的SQL查询结果保存在变量$res
。
来自print_r()
的{{1}}说出来,这是好的(我认为):
$res
将Array ( [0] => Array ( [hoejdemeter] => 1152 [laengde] => 24120 ) )
返回给函数并循环以获取两个变量:
$res
然后我遇到了这个问题:
注意:未定义的偏移量:第95行的C:\ xampp \ htdocs \ PhpProject1 \ BjergCykel1.php中的0
有什么问题?
答案 0 :(得分:0)
您只能不使用list
:
foreach ($Data as $value) {
$hight = $value['hoejdemeter'];
$length = $value['laengde'];
}
答案 1 :(得分:0)
您遇到的问题是将list
与关联数组一起使用。 list
documentation明确指出:
list()仅适用于数值数组,并假设数字索引从0开始。
您的数组有两个字符串键hoejdemeter
和laengde
,而不是数字索引0
和1
。
检索数据最简洁的方法是:
foreach ($Data as $value) {
$height = $value['hoejdemeter'];
$length = $value['laengde'];
//... Do something with $height and $length inside the foreach
}
使用函数来检索值而不是使用键并手动分配它们只会使代码的可读性降低,在您的情况下不应该这样做。
答案 2 :(得分:0)
您的问题不完整 - 我们无法查看实际的代码示例,因此很难说出您的函数内部会发生什么。我强烈建议您阅读这篇优秀文章How To Ask Questions The Smart Way
我建议您构建一个显示错误的极简主义示例:
<?php
function test($data){
print_r($data);
foreach ($data as $value) {
list($length, $hight) = $value;
echo("DEBUG: $length, $hight\n");
}
}
$data=array(array ("hoejdemeter" => 1152, "laengde" => 24120 ) );
test($data);
?>
输出是:
Array
(
[0] => Array
(
[hoejdemeter] => 1152
[laengde] => 24120
)
)
PHP Notice: Undefined offset: 0 in /tmp/foo.php on line 7
PHP Notice: Undefined offset: 1 in /tmp/foo.php on line 7
DEBUG: ,
我想你想要做的是:
<?php
function test($data){
print_r($data);
foreach ($data as $value) {
print_r($value);
list($length, $hight) = array_values($value);
echo("DEBUG: $length, $hight\n");
}
}
$data=array(array ("hoejdemeter" => 1152, "laengde" => 24120 ) );
test($data);
?>
输出:
Array
(
[0] => Array
(
[hoejdemeter] => 1152
[laengde] => 24120
)
)
Array
(
[hoejdemeter] => 1152
[laengde] => 24120
)
DEBUG: 1152, 24120