我遇到了问题,请帮助我。
这是我的数组
Array
(
[0] => subject7
[1] => subject6
[2] => subject5
[3] => subject3
[4] => subject2
)
我的数组大小为5
$sub= array();
for($j=0; $j<=$size; $j++)
{
$sub[] = $subject_value[$subject[$j]];
}
但它给我一条错误消息未定义的偏移量:5
答案 0 :(得分:3)
发生错误是因为您在数组中没有第5个元素。所以更改代码如下
$sub= array();
for($j=0; $j<$size; $j++)
{
$sub[] = $subject_value[$subject[$j]];
}
在这种情况下
$j <= $size
将迭代循环6次,所以它寻找第6个元素,即$ size [5],因为键从0开始,你没有数组中的第6个或$ size [5]元素。所以你会得到错误。所以你需要迭代循环5次,因为你的数组大小是5.所以你必须改变条件为$ j&lt; for循环中的$ size。
答案 1 :(得分:2)
DO
for($j=0; $j<$size; $j++)
答案 2 :(得分:2)
变化
$j<=$size
到
$j<$size
答案 3 :(得分:2)
$sub= array();
for($j=0; $j<=$size; $j++)
{
$sub[] = $subject_value[$subject[$j]];
}
应该是
$sub= array();
for($j=0; $j<$size; $j++)
{
$sub[] = $subject_value[$subject[$j]];
}
答案 4 :(得分:1)
您正在使用<=
运算符,它还会检查索引号5并使该索引的条件为true。即使只有指数直到4。
for($j=0; $j<$size; $j++)
根据上面的代码将其更改为<
运算符,因为从0开始只有索引4,然后它生成5个数组元素。
答案 5 :(得分:1)
为避免此类常见错误,您可以使用foreach循环:
foreach($subject as $item){
//work here
}
这样你就永远不会试图访问一个不存在的元素(在你的情况下是$ subject [5])。