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) 那一行应该做你想要的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |