PHP в массиве собрать тот же массив

У меня есть этот массив в 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']
]
]

-1

Решение

Это можно сделать стандартными функциями

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

демо на eval.in

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]