PHP中如何通过嵌套循环完成二维数组的赋值操作
PHP 嵌套循环赋值二维数组实现
你提供的伪代码存在缩进歧义,我们分别按两种常见场景给出实现方案:
场景1:常规二维数组全量赋值(修正伪代码缩进错误的合理场景)
该场景下i自增属于外层循环,j自增属于内层循环,最终生成6行11列的完整二维数组,代码如下:
<?php // 初始化空数组 $myarray = []; $k = 50; // 外层循环控制第一维下标i,范围0~5 for ($i = 0; $i <= 5; $i++) { // 每次进入内层循环前重置第二维下标j为0 for ($j = 0; $j <= 10; $j++) { $myarray[$i][$j] = $k; // 赋值完成后k自增2 $k += 2; } } // 验证输出结果 var_dump($myarray); ?>
该实现的输出特征:
- 第一维下标范围为0~5,共6个元素
- 每个第一维元素对应第二维下标范围为0~10,共11个元素
- 所有元素值从50开始依次递增2,无空缺
场景2:严格遵循贴出的伪代码执行逻辑
若你贴的伪代码缩进完全正确,i和j的自增都放在内层循环中,代码实现如下:
<?php $myarray = []; $i = 0; $j = 0; $k = 50; while ($i <= 5) { while ($j <= 10) { $myarray[$i][$j] = $k; $i++; $j++; $k += 2; } } var_dump($myarray); ?>
该实现的注意点:
- 因i和j同步自增,当j增长到11退出内层循环时,i已经增长到11,不满足外层
$i <=5的判断条件,外层循环仅会执行1次 - 最终仅
$myarray[0][0]到$myarray[5][5]共6个元素的赋值是在外层循环约束范围内完成的,剩余$myarray[6][6]到$myarray[10][10]的赋值不属于外层循环的控制范围
内容的提问来源于stack exchange,提问作者Somebeach
相关产品推荐
相关产品推荐

