You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP快速实现二维数组的行列转置?

PHP 二维数组转置的高效简便实现

直接用内置函数实现转置

PHP 提供了更简洁的方式实现二维数组转置,无需手动编写两层foreach循环——使用array_map()函数并传入null作为回调参数即可完成。

基础示例

原数组:

$array = array(
    array(1, 2),
    array(3, 4),
    array(5, 6)
);

转置代码(PHP 5.6+ 支持展开运算符):

$transposed = array_map(null, ...$array);

如果你的PHP版本低于5.6,可改用call_user_func_array兼容:

$transposed = call_user_func_array('array_map', array_merge([null], $array));

转置后的结果:

array(
    array(1, 3, 5),
    array(2, 4, 6)
);

非对称数组的处理

如果原数组是非对称二维数组(子数组长度不一致),array_map()会自动用null填充缺失的元素。例如:
原数组:

$array = array(
    array(1, 2, 3),
    array(4, 5),
    array(6)
);

转置后得到:

array(
    array(1, 4, 6),
    array(2, 5, null),
    array(3, null, null)
);

若需要过滤掉转置结果中的null值,可以自定义回调实现:

$transposed = array_map(function(...$items) {
    return array_filter($items, fn($item) => $item !== null);
}, ...$array);

性能优势

array_map()是PHP底层实现的函数,相比手动编写两层foreach循环,在性能上更有优势,同时代码更简洁易读。

内容的提问来源于stack exchange,提问作者Kostas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 04:48:14