<?php $array = [ [ 'product' => [ 'value' => 'basic', 'label' => 'Basic' ], 'countries' => [ 'Japan', // these 'Korea' // two... ], ], [ 'product' => [ 'value' => 'pro', 'label' => 'Pro' ], 'countries' => [ 'Japan', // ...and these two 'Korea' // are identical... ], ], [ 'product' => [ 'value' => 'expert', 'label' => 'Expert' ], 'countries' => [ 'Japan', 'France' ], ] ]; $result = []; foreach ($array as $row) { sort($row['countries']); $compositeKey = implode('_', $row['countries']); if (!isset($result[$compositeKey])) { $result[$compositeKey] = $row; } elseif (isset($result[$compositeKey]['product']['value'])) { $result[$compositeKey]['product'] = [ $result[$compositeKey]['product'], $row['product'] ]; } else { $result[$compositeKey]['product'][] = $row['product']; } } echo json_encode(array_values($result), JSON_PRETTY_PRINT);
You have javascript disabled. You will not be able to edit any code.