加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 循环中的错误数组值

发布时间:2020-12-13 16:22:23 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试这个循环,但我在$m [2] [3]中遇到了问题.没有显示任何值.所以我有一些增量问题. $nArr = array('A','B','C','D','E','F');$lp = 4;for ($i = 0; $i $lp; $i++) { $m[$i][$i] = 1; for ($x = $i; $x $lp; $x++) { $v = $i+$i; $m[$i][$x+1] = $nArr
我正在尝试这个循环,但我在$m [2] [3]中遇到了问题.没有显示任何值.所以我有一些增量问题.

$nArr = array('A','B','C','D','E','F');

$lp = 4;

for ($i = 0; $i < $lp; $i++) {
    $m[$i][$i] = 1;
    for ($x = $i; $x < $lp; $x++) {
        $v = $i+$i;
        $m[$i][$x+1] = $nArr[$x+$v];
    }
}

这是我的输出:

1 + A + B + C + - 1 + D + E + - 1 +   + - 1 +

我想要的输出:

1 + A + B + C + - 1 + D + E + - 1 + F + - 1 +

详细地:

echo $m[0][0]."+"; 1
echo $m[0][1]."+"; A
echo $m[0][2]."+"; B
echo $m[0][3]."+"; C
echo " - ";
echo $m[1][1]."+"; 1
echo $m[1][2]."+"; D
echo $m[1][3]."+"; E
echo "- ";
echo $m[2][2]."+";1
echo $m[2][3]."+"; //error,must be F
echo "- ";
echo $m[3][3]."+"; 1

解决方法

你的问题在于你的进步.在第二个“for”中,您的进展迅速增加:

$v = $i+$i;         
$m[$i][$x+1] = $nArr[$x+$v];

>在第一次迭代中以0 0 0($x $i $i)= 0 =开始
“一个”
>在第二次迭代中以1 1 1开始($x $i $i)= 3 =
“d”
>并且第三次迭代以2 2 2($x $i $i)= 6 =开始
null,您的数组有6个元素,因此您的最大索引为5.

您应该更改进度以获得下一个索引进度:0,3,5.

试试这个:

$nArr = array('A','F');
$lp = 4;                
for ($i = 0; $i < $lp; $i++) {
     $m[$i][$i] = 1;            
    for ($x = $i; $x < $lp; $x++) {                
        $v = $i+ceil($i/2);
        $m[$i][$x+1] = $nArr[$x+$v];            
    }        
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读