首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中转换多维数组?

如何在PHP中转换多维数组?
EN

Stack Overflow用户
提问于 2018-01-24 06:04:51
回答 2查看 0关注 0票数 0

如何在PHP中翻转90度(转置)多维数组?例如:

代码语言:javascript
复制
// Start with this array
$foo = array(
    'a' => array(
       1 => 'a1',
       2 => 'a2',
       3 => 'a3' 
    ),
    'b' => array(
       1 => 'b1',
       2 => 'b2',
       3 => 'b3' 
    ),
    'c' => array(
       1 => 'c1',
       2 => 'c2',
       3 => 'c3' 
    )
);

$bar = flipDiagonally($foo); // Mystery function
var_dump($bar[2]);

// Desired output:
array(3) {
  ["a"]=>
  string(2) "a2"
  ["b"]=>
  string(2) "b2"
  ["c"]=>
  string(2) "c2"
}

你会如何实施flipDiagonally()

EN

回答 2

Stack Overflow用户

发布于 2018-01-24 14:48:44

代码语言:javascript
复制
function transpose($array) {
    array_unshift($array, null);
    return call_user_func_array('array_map', $array);
}

或者如果你使用的是PHP 5.6或更高版本:

代码语言:javascript
复制
function transpose($array) {
    return array_map(null, ...$array);
}
票数 0
EN

Stack Overflow用户

发布于 2018-01-24 15:34:59

有两个循环。

代码语言:javascript
复制
function flipDiagonally($arr) {
    $out = array();
    foreach ($arr as $key => $subarr) {
        foreach ($subarr as $subkey => $subvalue) {
            $out[$subkey][$key] = $subvalue;
        }
    }
    return $out;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档