为了账号安全,请及时绑定邮箱和手机立即绑定

我想生成一个常规数组

我想生成一个常规数组

PHP
qq_花开花谢_0 2021-11-05 20:09:28
我想生成一个常规数组。使用 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-- )


查看完整回答
反对 回复 2021-11-05
  • 1 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信