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

原始阵列:

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)

那一行应该做你想要的.

标签:php,arrays,refactoring

来源: https://codeday.me/bug/20190629/1324694.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值