是否有更好的方法来转置PHP 2D数组?

Aus*_*yde 10 php arrays

根据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数组吗?

Mat*_*son 4

没有。这才是最优雅的。