- preg_match: documentation ( source)
- var_export: documentation ( source)
- array_values: documentation ( source)
<?php
$array = [
'.airport.aero',
'.cargo.aero',
'.charter.aero',
'.aero',
'.aetna'
];
$result = [];
foreach ($array as $value) {
if (!preg_match('/(?!^)\..+/', $value, $m)) {
if (!isset($result[$value])) {
$result[$value] = ['tld' => $value, 'gTLD' => []];
}
} else {
if (!isset($result[$m[0]])) {
$result[$m[0]] = ['tld' => $m[0], 'gTLD' => [$value]];
} else {
$result[$m[0]]['gTLD'][] = $value;
}
}
}
var_export(array_values($result));