当前位置:Gxlcms > PHP教程 > php代码怎么实现矩阵

php代码怎么实现矩阵

时间:2021-07-01 10:21:17 帮助过:9人阅读

php代码实现矩阵的方法:首先取出行数和列数;然后在外层循环控制圈数;接着通过“j=i;j<col-i;j++;j<; arr[i][j]”方式实现第一个for循环;最后通过“k=i+1”实现第二个for循环,并以此类推即可。

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑

[PHP] 算法-顺时针打印矩阵的PHP实现

1.行数和列数取出来row,col,圈数就是 (较小值-1)/2+1

2.外层循环控制圈数,内层四个for循环,i

3.第一个for循环,从左到右,j=i;j<col-i;j++;j<; arr[i][j]

4.第二个for循环,从上到下,k=i+1;k<row-i;k++; arr[k][col-1-i]

5.第三个循环,从右到左,m=col-2-i;m>=i&&row-1-i!=i;m-- arr[row-1-i][m]//row-1-i!=i单行的时候只打印一次

6.第四个循环,从下到上,n=row-2-i;n>=i&&col-1-i!=i;n-- arr[n][i]

  1. <?php
  2. $arr=array();
  3. $flag=0;
  4. for($i=0;$i<2;$i++){
  5. $flag=$i*2;
  6. for($j=0;$j<2;$j++){
  7. $flag++;
  8. $arr[$i][]=$flag;
  9. }
  10. }
  11. var_dump($arr);
  12. //顺时针打印矩阵
  13. function printMatrix($arr){
  14. $res=array();
  15. $row=count($arr);
  16. $col=count($arr[0]);
  17. $circle=intval((($row>$col ? $col : $row)-1)/2+1);
  18. for($i=0;$i<$circle;$i++){
  19. //转圈开始
  20. //从左到右
  21. for($j=$i;$j<=$col-1;$j++){
  22. $t=$arr[$i][$j];
  23. if(in_array($t,$res)) continue;
  24. $res[]=$t;
  25. }
  26. //从上到下
  27. for($k=$i+1;$k<$row-$i;$k++){
  28. $t=$arr[$k][$col-$i-1];
  29. if(in_array($t,$res)) continue;
  30. $res[]=$t;
  31. }
  32. //从右到左
  33. for($m=$col-$i-2;$m>=$i;$m--){
  34. $t=$arr[$row-$i-1][$m];
  35. if(in_array($t,$res)) continue;
  36. $res[]=$t;
  37. }
  38. //从下到上
  39. for($n=$row-$i-2;$n>$i;$n--){
  40. $t=$arr[$n][$i];
  41. if(in_array($t,$res)) continue;
  42. $res[]=$t;
  43. }
  44. }
  45. return $res;
  46. }
  47. $res=printMatrix($arr);

推荐学习:《PHP视频教程》

以上就是php代码怎么实现矩阵的详细内容,更多请关注gxlcms其它相关文章!

人气教程排行