根据PHP手册,array_map
使用NULL
回调调用会导致它执行"zip"函数,从给定数组创建并行元素数组的数组.
例如:
array_map(NULL,array(1,2,3),array('a','b','c'));
Run Code Online (Sandbox Code Playgroud)
产量
array(array(1,'a'),array(2,'b'),array(3,'c'))
Run Code Online (Sandbox Code Playgroud)
这也相当于转置数组
array(array(1,2,3),array('a','b','c'))
Run Code Online (Sandbox Code Playgroud)
现在,看起来这是最接近的方式(使用内置函数),您可以转置数组,除了array_map
采用数组列表,而不是数组数组.
在我正在研究的一些代码中,我需要转置一个数组数组,而不是数组列表,所以我做了这个解决方法:
call_user_func_array('array_map',array_merge(array(NULL),$array_of_arrays))
Run Code Online (Sandbox Code Playgroud)
然而,这感觉非常肮脏和笨拙.
所以我问:
除了自定义实现之外,还有更好的方法来使用PHP转置2D数组吗?