В соответствии с PHP Manual вызов array_map
с обратным вызовом NULL
заставляет его выполнять функцию "zip", создавая массив массивов параллельных элементов из заданных массивов.
Например:
array_map(NULL,array(1,2,3),array('a','b','c'));
дает
array(array(1,'a'),array(2,'b'),array(3,'c'))
Это также эквивалентно транспонированию массива
array(array(1,2,3),array('a','b','c'))
Прямо сейчас, кажется, что это самый близкий путь (используя встроенные функции), вы можете транспонировать массив, за исключением того, что array_map
принимает список массивов, а не массив массивов.
В некотором коде, над которым я работаю, мне нужно перенести массив массивов, а не список массивов, поэтому я сделал эту работу:
call_user_func_array('array_map',array_merge(array(NULL),$array_of_arrays))
Однако это кажется очень грязным и неуклюжим.
И поэтому я спрашиваю:
Есть ли лучший способ перенести 2D-массив с PHP, помимо специальной реализации?