我想生成一个常规数组。使用 1 到 n。这是一个 6 维数组的示例01 02 04 07 11 1603 05 08 12 17 2206 09 13 18 23 2710 14 19 24 23 25 2 3421 26 30 33 35 36这是我的代码。但是生成的数组数量比我想要的多$size = 6;for ( $i = 0; $i < $size * 2 - 1 ; $i++ ){ for ( $j = 0 , $i_temp = $i ; $j <= $i ; $j++ , $i_temp-- ) { if( $i < $size ) { if( $i == 0 && $j == 0 ) { $arr[ $j ][ $i_temp ] = 1; } else { if( $j == 0 ) { $arr[ $j ][ $i_temp ] = $arr[ $i_temp - 1 ][ $j ] +1; } else { $arr[ $j ][ $i_temp ] = $arr[ $j - 1 ][ $i_temp + 1 ] + 1; } } } else { if ( $i_temp < $size - 1 ) { $arr[ $j ][ $i_temp ] = $arr[ $j - 1 ][ $i_temp + 1 ] + 1; } if ( $i_temp == $size - 1 ) { $arr[ $j ][ $i_temp ] = $arr[ $i_temp ][ $j - 1 ] + 1; } } }}print_r($arr);我找不到错误。有人能帮我吗?
1 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
改变
if ( $i < $size )
{
...
}
else
{
...
}
到
if( $i < $size )
{
...
}
else if ( $j < $size )
{
...
}
因为您不希望 $j 超过数组的大小。另一种可能性是在你的内部循环中处理这个:
for ( $j = 0 , $i_temp = $i ; $j <= min( $i , $size - 1 ) ; $j++ , $i_temp-- )
- 1 回答
- 0 关注
- 145 浏览
添加回答
举报
0/150
提交
取消