Я пытаюсь превратить список доменов во вложенный массив на основе их поддоменов. Поначалу это кажется тривиальным, но мой маленький мозг борется.
Вход:
example.com
www.example.com
email.example.com
1.email.example.com
example.net
Ожидаемый результат.
$array = array(
"com" => array(
"example",
"example" => array("www","email"=> "1")),
"net" => "example",
);
Я могу немного приблизиться с помощью следующего кода :
<code>$a = 'a.google.com';
$b = 'b.google.com';
$c = 'c.google.com';
$a1 = '1.a.google.com';
$a2 = '5.2.a.google.com';
$a3 = '3.a.google.com';
$d = [$a,$b,$c,$a1,$a2,$a3];
$result = [];
foreach ($d as $domain){
$fragments = array_reverse( explode( '.', $domain ));
for ($x = 0; $x <= count($fragments)-1; $x++) {
if (!is_array($result[$x])){ $result[$x] = [];}
array_push($result[$x], $fragments[$x]);
}
}
echo '<pre>';
var_dump($result);
echo '
';
Хотя это не вкладывает массивы, и я не вижу, как я могу получить доступ к правильным массивам для pu sh данных без какой-либо конструкции массива переменных. Halp! : P