如何用PHP生成指定递推结构的二维整数数组?
生成指定结构的二维PHP数组
先明确目标数组的规律:
- 每3行(对应子数组元素个数$b=3)为一个周期,每个周期对应基础数值$n(从0开始递增)
- 周期内的3行结构固定:
- 第1行:所有元素均为$n
- 第2行:前2个元素为$n,最后1个元素为$n+1
- 第3行:第1个元素为$n,后2个元素为$n+1
- 最后一行是下一个$n的全值(示例中为[3,3,3])
以下是实现该逻辑的PHP代码:
<?php $totalRows = 10; // 目标数组的总行数,对应示例中的10行 $elementCount = 3; // 每个子数组的元素个数 $result = []; for ($k = 0; $k < $totalRows; $k++) { $n = intdiv($k, 3); // 计算当前周期的基础数值 $rowType = $k % 3; // 判断当前行在周期内的类型(0/1/2) $row = []; for ($j = 0; $j < $elementCount; $j++) { switch ($rowType) { case 0: $row[] = $n; break; case 1: $row[] = ($j === $elementCount - 1) ? $n + 1 : $n; break; case 2: $row[] = ($j === 0) ? $n : $n + 1; break; } } $result[] = $row; } print_r($result); ?>
代码说明:
intdiv($k, 3):将行号按3分组,每组对应一个基础数值$n,每3行$n自动递增1$k % 3:确定当前行属于周期内的哪一种结构类型- 内层循环根据行类型生成对应元素,完美匹配目标数组的结构
内容的提问来源于stack exchange,提问作者Fitri Ahmed
相关产品推荐
相关产品推荐

