php 在数组中收集相同的数组

php in array collect same array

我在 PHP 中有这个数组:

$a = [
['name'=>'salvar','type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
['name'=>'salvar','type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
['name'=>'salvar','type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
['name'=>'salvar','type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
['name'=>'salvar','type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
['name'=>'corab' ,'type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
['name'=>'corab' ,'type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
['name'=>'corab' ,'type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
['name'=>'yag' ,'type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
];

我想在一个数组中收集相同的数组。有人可以帮忙吗? 我需要这样的结果

 [
  [
   ['name'=>'salvar','type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
   ['name'=>'salvar','type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
   ['name'=>'salvar','type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
   ['name'=>'salvar','type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
   ['name'=>'salvar','type'=>'Qt','count'=>'1','price'=>'10','total'=>'7']
  ],
  [
   ['name'=>'corab' ,'type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
   ['name'=>'corab' ,'type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
   ['name'=>'corab' ,'type'=>'Qt','count'=>'1','price'=>'10','total'=>'7'],
  ],
  [
   ['name'=>'yag' ,'type'=>'Qt','count'=>'1','price'=>'10','total'=>'7']
  ]
 ]

可以通过标准函数完成

$res = [];
foreach(array_count_values(array_map('json_encode', $a)) as $k=>$v) {
    $res[] = array_fill(0, $v, json_decode($k, true));
}

demo on eval.in