php - 二维数组合并成三维数组

查看:1076
本文介绍了php - 二维数组合并成三维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

[["id"=>1,"name"=>"mi5","pp"=>"xiaomi"],
 ["id"=>2,"name"=>"ip5","pp"=>"apple"],
 ["id"=>3,"name"=>"ip6","pp"=>"xiaomi"],
 ["id"=>4,"name"=>"ip6","pp"=>"apple"]
];

以二维数组中的name 和 pp 相同的值分组

结果是:

[["id"=>1,"name"=>"mi5","pp"=>"xiaomi"],
 ["id"=>2,"name"=>"ip5","pp"=>"apple"],
 [["id"=>3,"name"=>"ip6","pp"=>"apple"],
 ["id"=>4,"name"=>"ip6","pp"=>"apple"]]
];

相同name和pp被分到三维数组中,这是一个例子,实际分类的条件有四个,而且每个的值都很长。求解,目前只能想到两层遍历。

解决方案

<?php
$array = [
     ["id"=>1,"name"=>"mi5","pp"=>"xiaomi"],
     ["id"=>2,"name"=>"ip5","pp"=>"apple"],

     ["id"=>3,"name"=>"ip6","pp"=>"apple"],
     ["id"=>3,"name"=>"ip6","pp"=>"ip"],
     ["id"=>4,"name"=>"ip6","pp"=>"apple"]
    ];
/*
[
 ["id"=>1,"name"=>"mi5","pp"=>"xiaomi"],
 ["id"=>2,"name"=>"ip5","pp"=>"apple"],
 [
     ["id"=>3,"name"=>"ip6","pp"=>"apple"],
     ["id"=>4,"name"=>"ip6","pp"=>"apple"]
 ]
];
*/

$container = [];
array_map(function( $val ) use ( &$container ) {
    $container[ $val['name'].$val['pp'] ][] = $val; 
}, $array);

var_dump(array_values($container));

这篇关于php - 二维数组合并成三维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆