加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 重构(转置)数组到唯一键

发布时间:2020-12-13 16:51:29 所属栏目:PHP教程 来源:网络整理
导读:参见英文答案 Transposing multidimensional arrays in PHP????????????????????????????????????10个 我正在转换一些db结果用于统计生成. 原始阵列: Array( [0] = Array ( [a] = apple [b] = beer [c] = chocolate ) [1] = Array ( [a] = aardvark [b] = b
参见英文答案 > Transposing multidimensional arrays in PHP????????????????????????????????????10个
我正在转换一些db结果用于统计生成.

原始阵列:

Array
(
    [0] => Array
        (
            [a] => apple
            [b] => beer
            [c] => chocolate
        )
    [1] => Array
        (
            [a] => aardvark
            [b] => bear
            [c] => chupacabra
        )
)

期望的结果:

Array
(
    [a] => Array
        (
            [0] => apple
            [1] => aardvark
        )
    [b] => Array
        (
            [0] => beer
            [1] => bear
        )

    [c] => Array
        (
            [0] => chocolate
            [1] => chupacabra
        )
)

示例代码:

$stats[] = array(
    'a' => 'apple','b' => 'beer','c' => 'chocolate'
);

$stats[] = array(
    'a' => 'aardvark','b' => 'bear','c' => 'chupacabra'
);

foreach (array_keys($stats[0]) as $key){
    $data[$key] = array_column($stats,$key);
}

上面的代码使用array_keys和array_column(php 5.5)正常工作.

>是否有更优雅的方式或PHP功能来实现相同的结果?
>这种重新分解的通用名称是什么?

编辑:

根据下面的评论,正确的术语是“转置”

解决方法

我以为有一个array_ *函数用于那种事情,但我不记得所以我去了PHP文档结果发现array_merge_recursive正是你想要的.

array_merge_recursive($array1,$array2)

您将数组组合在一个数组中,因此您必须使用数组的内容填充函数的参数.

call_user_func_array("array_merge_recursive",$stats)

那一行应该做你想要的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读