<?php $init = [ [ 'unique_codename'=>'cars', 'sorts'=>[ ['codename' => 'cars', 'name' => 'audi'], ['codename' => 'cars', 'name' => 'volvo'] ], 'category'=>'vehicle', ], [ 'unique_codename'=>'fruit', 'sorts'=>[ ['codename' => 'fruit', 'name' => 'banana'], ['codename' => 'fruit', 'name' => 'apple'], ], 'category'=>'food', ], [ 'unique_codename'=>'vegetables', 'sorts'=>[ ['codename' => 'vegetables', 'name' => 'cauliflower'], ], 'category'=>'food', ], ]; $array = [ ['codename'=>'fruit', 'name'=>'banana', 'type'=>'yellowbanana'], ['codename'=>'fruit', 'name'=>'banana', 'type'=>'brownbanana'], ['codename'=>'cars', 'name'=>'audi', 'type'=>'a2'], ['codename'=>'fruit', 'name'=>'banana', 'type'=>'greenbanana'], ['codename'=>'cars', 'name'=>'audi', 'type'=>'a6'], ['codename'=>'cars', 'name'=>'other', 'type'=>'dummytext1'], ['codename'=>'cars', 'name'=>'other', 'type'=>'dummytext2'], ]; $init = array_combine(array_column($init, 'unique_codename'), $init); foreach ($array as $k => $item) { if (isset($init[$item['codename']])) { foreach ($init[$item['codename']]['sorts'] as &$sort) { if ($sort['name'] == $item['name']) { $sort['types'][] = $item['type']; } } } } print_r(array_values($init));
You have javascript disabled. You will not be able to edit any code.