Sie können einfach eine rekursive Funktion erstellen:
<?php
function nestArray($myArray)
{
if (empty($myArray))
{
return array();
}
$firstValue = array_shift($myArray);
return array($firstValue => nestArray($myArray));
}
?>
Ich denke, dies ist die klarste Lösung, kann erkennen, was es tut, indem man es nur ansieht. Im Basisfall sollten Sie wahrscheinlich ein leeres Array zurückgeben.
– Matsemann
19. Juni 2013 um 10:58 Uhr
Ja, das könnte eine elegante Lösung sein, aber ich brauchte eine iterative. Danke für Ihre Hilfe :). So viele Möglichkeiten, dieselbe Aufgabe zu erfüllen.
– MrFix
19. Juni 2013 um 11:05 Uhr
@MrFix: Der mentale Prozess, mit dem Sie Ihr Array erstellen können, ist eindeutig rekursiv (wie oft bei verschachtelten Aufgaben), und diese Lösung hat den Vorteil, klar und prägnant zu sein. Wenn dein Ziel ist, zu üben, solltest du besser gleich die guten Gewohnheiten annehmen 🙂 .
– Schwarzes Loch
19. Juni 2013 um 11:09 Uhr
@Blackhole, ich lerne Schritt für Schritt und ich denke, es wäre gut für mich, auch andere mögliche Lösungen zu lernen. Danke für eure Vorschläge 🙂
– MrFix
19. Juni 2013 um 11:15 Uhr
Bogdan Burim
Nun, versuchen Sie Folgendes:
$in = array(1,2,3,4); // Array with incoming params
$res = array(); // Array where we will write result
$t = &$res; // Link to first level
foreach ($in as $k) { // Walk through source array
if (empty($t[$k])) { // Check if current level has required key
$t[$k] = array(); // If does not, create empty array there
$t = &$t[$k]; // And link to it now. So each time it is link to deepest level.
}
}
unset($t); // Drop link to last (most deep) level
var_dump($res);
die();
Klingt etwas unlogisch. Wofür brauchst du es?
– Bogdan Burym
19. Juni 2013 um 10:40 Uhr
Q. Wie macht man etwas aus einem Array? EIN. Verwenden Sie eine Schleife.
– Ihr gesunder Menschenverstand
19. Juni 2013 um 10:41 Uhr
Möchten Sie uns mitteilen, warum Sie dies tun möchten? Es ist auf jeden Fall schwer vorstellbar, dass Sie es brauchen würden.
– George
19. Juni 2013 um 10:41 Uhr
Ich lerne PHP und möchte mit Arrays üben.
– MrFix
19. Juni 2013 um 10:44 Uhr
@YourCommonSense oder manchmal noch besser, eine rekursive Funktion..
– Matsemann
19. Juni 2013 um 11:10 Uhr