在PHP中如何声明100行100列的二维矩阵
PHP 生成100x100矩阵的实现方案
你可以根据自己的使用场景选择以下任意一种方式实现:
方案1:灵活自定义赋值(for循环实现)
适合需要给矩阵不同位置设置不同初始值的场景,可控性最高:
$matrix = []; // 外层循环控制100行 for ($rowIndex = 0; $rowIndex < 100; $rowIndex++) { $matrix[$rowIndex] = []; // 内层循环控制每行100列 for ($colIndex = 0; $colIndex < 100; $colIndex++) { // 可自定义赋值规则,示例初始化为0 $matrix[$rowIndex][$colIndex] = 0; // 若需要按行列顺序存1~10000的数值,可以替换为: // $matrix[$rowIndex][$colIndex] = $rowIndex * 100 + $colIndex + 1; } }
方案2:极简内置函数实现(array_fill)
适合所有矩阵元素初始值统一的场景,代码最简洁:
// 先生成1个包含100个指定初始值的一维数组作为行模板 $rowTemplate = array_fill(0, 100, 0); // 再生成100个相同的行,组成100x100的矩阵 $matrix = array_fill(0, 100, $rowTemplate);
注意:该方案仅适合初始值为数字、字符串等标量类型的场景,如果需要存储对象等引用类型,不要用这个方法避免所有行指向同一个引用的问题。
方案3:基于array_push的实现
完全复用你已经掌握的array_push追加元素的语法实现:
$matrix = []; for ($i = 0; $i < 100; $i++) { $currentRow = []; for ($j = 0; $j < 100; $j++) { // 给当前行追加列元素 array_push($currentRow, 0); } // 给矩阵追加当前行 array_push($matrix, $currentRow); }
内容的提问来源于stack exchange,提问作者Jan
相关产品推荐
相关产品推荐

