这是我的示例数组:
$arrayy[0]=48.72;
$arrayy[1]=21.32;
$arrayy[2]=48.62;
$arrayy[3]=21.31;
$arrayy[4]=48.62;
$arrayy[5]=21.31;
此功能
function writeDouble($array){
for($curr = 0; $curr<count($array)-1; $curr++){
echo $array[$curr]." - ";
echo $array[$curr+1]."<br>";
$curr++;
}
}
应该写一对夫妇(0-1,2-3,4-5) - 输出如:
48.72 - 21.32
48.62 - 21.31
48.62 - 21.31
我做错了什么,为什么会出错?
Notice: Undefined offset: 6 in C:\xampp\htdocs\xampp\lg\functions.php on line 466
或者你能定义一个更好的功能来制作情侣吗?我再也想不起了......谢谢
答案 0 :(得分:4)
因为在行echo $array[$curr+1]."<br>";
的最后一次迭代中,您将寻找未定义的源$array[count($array)]
!!
答案 1 :(得分:0)
您正在使用$array[$curr + 1]
,但您正在从0
进行迭代,再到$curr - 1
。如果数组中有奇数个值,则需要isset
。
您的增量为2次(for
增加一次,for
范围内增加一次。
代码解决方案:
$arrayy[0]=48.72;
$arrayy[1]=21.32;
$arrayy[2]=48.62;
$arrayy[3]=21.31;
$arrayy[4]=48.62;
$arrayy[5]=21.31;
function writeDouble($array) {
for ($curr = 0; $curr < (count($array) - 1); $curr += 2) {
echo $array[$curr] . " - ";
if (isset($array[$curr + 1])) {
echo $array[$curr + 1];
}
echo "<br>";
}
}
writeDouble($arrayy);
输出:
48.72 - 21.32
48.62 - 21.31
48.62 - 21.31
不再警告。
答案 2 :(得分:0)
请注意,您要两次增加$ curr:
for($curr = 0; $curr<count($array)-1; $curr++){
和
$curr++
这是你的循环超出范围的原因