如何在PHP中旋转二维数组90度

前端之家收集整理的这篇文章主要介绍了如何在PHP中旋转二维数组90度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想顺时针旋转90度矩阵.这相当于使输入中的第一列成为输出的第一行,输入的第二列成为输出的第二行,输入的第三列成为输出的第3行.请注意,列的底部=行的开头,因为旋转90度.

例如:

  1. $matrix= [[1,2,3]
  2. [4,5,6],[7,8,9]];
  3.  
  4. rotate90degrees($matrix)= [[7,4,1],[8,2],[9,6,3]]

我所知道的是我首先转置矩阵,然后交换列以将矩阵旋转90度.怎么能将这个应用到PHP

@H_403_7@
@H_403_7@
PHP没有像矩阵的“转置”这样的概念而没有添加某种线性代数库.
你可以通过遍历矩阵和交换一些索引来原生地完成它
  1. <?PHP
  2.  
  3. function rotate90($mat) {
  4. $height = count($mat);
  5. $width = count($mat[0]);
  6. $mat90 = array();
  7.  
  8. for ($i = 0; $i < $width; $i++) {
  9. for ($j = 0; $j < $height; $j++) {
  10. $mat90[$height - $i - 1][$j] = $mat[$height - $j - 1][$i];
  11. }
  12. }
  13.  
  14. return $mat90;
  15. }
  16.  
  17. $mat = [[1,3],[4,9]];
  18. print_r($mat);
  19. //123
  20. //456
  21. //789
  22. print_r(rotate90($mat));
  23. //741
  24. //852
  25. //963
  26.  
  27.  
  28. $mat = [[1,9],["a","b","c"]];
  29. print_r($mat);
  30. //123
  31. //456
  32. //789
  33. //abc
  34. print_r(rotate90($mat));
  35. //a741
  36. //b852
  37. //c963
@H_403_7@

猜你在找的PHP相关文章