我正在解决一个更大的问题,一步我需要逆时针旋转一个二维阵列.
所以,如果我有这个矩阵:
1 2 3 4
1 2 3 4
3 4 5 6
3 4 5 6
轮换后它将是:
4 4 6 6
3 3 5 5
2 2 4 4
1 1 3 3
我发现顺时针旋转了solution:
$a = array(array(1,2,3,4),array(5,6,7,8),array(9,0,1,2),array(3,4,5,6));
$b = array(); //result
while(count($a)>0)
{
$b[count($a[0])-1][] = array_shift($a[0]);
if (count($a[0])==0)
{
array_shift($a);
}
}
?>
问题是,即使a是一维的或只有一个元素,这也必须起作用.
那么,1 2 3 4将成为:
4
3
2
1
解决方法:
$b = call_user_func_array(
'array_map',
array(-1 => null) + array_map('array_reverse', $a)
);
我将把它作为练习让读者弄清楚它是如何工作的.
标签:php,arrays,matrix
来源: https://codeday.me/bug/20190715/1468320.html