Ak by to malo byť pole, tak napríklad:
$pole = [ "windows" => ["Windows" , [ "windows7" => "Windows 7",
                                      "windows8" => "Windows 8",
                                      "windows10" => "Windows 10" ]],
          "linux" => ["Linux", [ "gentoo" => "Gentoo",
                                 "debian8" => "Debian 8",
                                 "ubuntu" => "Ubuntu 16.04LTS" ]],
          "apple" => ["Apple", ["apple" => "Apple"]] ;
Výpis položiek by mohol vyzerať napríklad takto:
foreach ($pole as $key => $value){
    echo $key . "<br>";
    echo $value[0] . "<br>";
    foreach ($value[1] as $key1 => $value1){
        echo $key1 . "<br>";
        echo $value1 . "<br>";
}
alebo aj takto:
foreach ($pole as $key => $value){
    echo "<a href=\"/{$key}\">{$value[0]}</a>";
    foreach ($value[1] as $key1 => $value1){
        echo "    <a href=\"/{$key}/{$key1}\">+ + {$value1}</a>";
}
Celé je to samozrejme blbosť a v praxi by som to určite urobil úplne inak, ale keď to musí byť pole tak teda pole.
Píšem to z hlavy, pre takúto prkotinu sa mi nechce vstať z postele a ísť k počítaču, takže je to bez záruky.