$newArray = array();$data = [ ['a'=>1,'b'=>2], ['a'=>1,'b'=>3], ['a'=>2,'b'=>'a'], ['a'=>2,'b'=>'b'] ]; foreach($data as $key=>$v){ $newArray[$v['a']][]=$v; } dump($newArray);原理是什么呢?就是当循环这个二维数组的时候当a=1的时候
它会自动添加到neearray中key=1的数组中。一次类推都会根据a的值相同而添加到新数组key
和他们一样的数组中。
题外话:二维对象转数组
当$data为二维对象转数组时,网上查了很多长串的处理根本没效果,最后使用的是下面这种:
先转为json在转为数组。当单使用json_decode(json)没效果的时候,可在其后面添加第二个参数为true;
$data = json_decode(json_encode($data),true);