<?php $array = [ 'abc' => [ [ 'foo' => '*', 'action' => 'Read', 'resource' => [ 'name' => 'name_1', 'patternType' => 'fixed', 'type' => 'partition', ], ], [ 'foo' => '*', 'action' => 'Write', 'resource' => [ 'name' => 'name_1', 'patternType' => 'fixed', 'type' => 'partition', ], ], [ 'foo' => '*', 'action' => 'Read', 'resource' => [ 'name' => 'name_2', 'patternType' => 'fixed', 'type' => 'partition', ], ], [ 'foo' => '*', 'action' => 'Alter', 'resource' => [ 'name' => 'name_2', 'patternType' => 'fixed', 'type' => 'partition', ], ], ], ]; foreach ($array as $key => &$sets) { foreach ($sets as $i => &$set) { $id = $set['resource']['name']; if (!isset($ref[$id])) { $set['action'] = (array) $set['action']; $ref[$id] = &$set['action']; } else { $ref[$id][] = $set['action']; unset($array[$key][$i]); } } } var_export($array);
You have javascript disabled. You will not be able to edit any code.