У меня есть 2 массива, в которых элементы из 3 групп перемешаны. Решающие ключи массивов являются: group_id и item_order:Слияние массивов, группировка и сортировка значений
$one = array(
array('group_id' => 1, 'name' => 'Luke', 'item_order' => 0),
array('group_id' => 2, 'name' => 'Vader', 'item_order' => 1),
array('group_id' => 1, 'name' => 'Han', 'item_order' => 1)
);
$two = array(
array('group_id' => 3, 'name' => 'Jabba', 'item_order' => 1),
array('group_id' => 3, 'name' => 'Palpatine', 'item_order' => 0),
array('group_id' => 2, 'name' => 'Bib Fortuna', 'item_order' => 0)
);
Я хотел бы:
- сливаются оба массива, так что результат группируется по group_id
- сортировать по group_id по возрастанию
- , наконец, сортировать каждую группу по item_order восходящая
Результат должен выглядеть следующим образом:
array(
['group_1'] => array(
array('group_id' => 1, 'name' => 'Luke', 'item_order' => 0),
array('group_id' => 1, 'name' => 'Han', 'item_order' => 1)
);
['group_2'] => array(
array('group_id' => 2, 'name' => 'Palpatine', 'item_order' => 0),
array('group_id' => 2, 'name' => 'Vader', 'item_order' => 1)
);
['group_3'] => array(
array('group_id' => 3, 'name' => 'Bib Fortuna', 'item_order' => 0),
array('group_id' => 3, 'name' => 'Jabba', 'item_order' => 1)
);
);
Я пытался array_merge() но все, что я в какой-то момент получает данные перезаписываются (как ключи массива являются строками) и результат не целое.
Любые идеи, как сделать это умным способом?
Последний вид (5) не работает. – bbankowski