php二维数组中,使用某个键的值作为键组成新的数组方法

2022-10-11 21:14:40 176 0
魁首哥

对于一个二维数组:

$arr = [
 ['num'=>2019,'name'=>'Jack','age'=>19],
 ['num'=>2019,'name'=>'Jone','age'=>18],
 ['num'=>2020,'name'=>'Marry','age'=>20]
];
 

我们想获取以num值为键,其他值为该键的值的数组

php二维数组中,使用某个键的值作为键组成新的数组方法

可以使用下面函数实现:

function array_group_by($arr, $key) {
 $grouped = [];
  foreach  ($arr as $value) {
 $grouped[$value[$key]][] = $value;
 }
 if (func_num_args() > 2) {
 $args = func_get_args();
 foreach ($grouped as $key => $value) {
 $parms = array_merge([$value], array_slice($args, 2, func_num_args()));
 $grouped[$key] = call_user_func_array('array_group_by', $parms);
 }
 }
 return $grouped;
}
$res = array_group_by($arr, 'num');
dump($res);
 

结果为如下:

Array
(
 [2019] => Array
 (
 [0] => Array
 (
 [num] => 2019
 [name] => Jack
 [age] => 19
 )
 [1] => Array
 (
 [num] => 2019
 [name] => Jone
 [age] => 18
 )
 )
 [2020] => Array
 (
 [0] => Array
 (
 [num] => 2020
 [name] => Marry
 [age] => 20
 )
 )
)
 

收藏
分享
海报
0 条评论
176
上一篇:微信小程序 数据请求 表单的创建 提交 与接收 下一篇:紧急:图像处理软件ImageMagick存在远程代码执行漏洞

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码