Привет
Я сначала попытался описать общую задачу, но получилось сложнова-то. Оставил это описание ниже.
Реальная задача звучит так:
У меня есть сотни квартир в виде массива.
Планировка - это площади (общая, жилая, кухня), кол-во комнат, цена, этаж.
Множество повторяющихся планировок различаются только по цене и этажу. Необходимо объединить одинаковые планировки в одну запись и создать для таких записей массив в котором будет храниться зависимости этажа от цены.
Общий вид задачи:
Имеем большой многомерный массив данных:
$arr = [
'0' => [
'foo1' => 'bar1',
'foo2' => 'bar2',
'foo3' => 'buz1',
'floor' => 1,
],
'1' => [
'foo1' => 'bar1',
'foo2' => 'bar2',
'foo3' => 'buz2',
'floor' => 7,
],
'3' => [
'foo1' => 'bar3',
'foo2' => 'bar4',
'foo3' => 'buz3',
'floor' => 1,
],
...
]
Задача:
Получить новый массив аналогичной структуры в котором записи с одинаковыми значениями foo1 и foo2 будут объединены в одну запись, а записи buz1 и buz2 будут объединены во вложенный в эту запись массив.
Результат:
$arr = [
'0' => [
'foo1' => 'bar1',
'foo2' => 'bar2',
'dependence' => ['1' => buz1, '7' => buz2],
],
'1' => [
'foo1' => 'bar3',
'foo2' => 'bar4',
'dependence' => ['1' => buz3],
],
]