
MrFix
Angenommen, wir haben ein Array: array(1,2,3,4,...)
Und ich möchte es umwandeln in:
array(
1=>array(
2=>array(
3=>array(
4=>array()
)
)
)
)
Kann jemand helfen?
Danke
BEARBEITEN Es wäre gut, die Lösung mit Iterationen zu haben.
$x = count($array) - 1;
$temp = array();
for($i = $x; $i >= 0; $i--)
{
$temp = array($array[$i] => $temp);
}

Schwarzes Loch
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));
}
?>

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();
Ausgabe:
array(1) {
[1]=> array(1) {
[2]=> array(1) {
[3]=> array(1) {
[4]=> array(0) {
}
}
}
}
}
Ich denke, die Syntax für das mehrdimensionale Array, das Sie erstellen möchten, würde wie folgt aussehen.
$array = array(
'array1' => array('value' => 'another_value'),
'array2' => array('something', 'something else'),
'array3' => array('value', 'value')
);
Ist es das, wonach Sie suchen?

Kleinarbeit
Sie können dies auch verwenden Array-Bibliothek um das in nur einer Zeile zu tun:
$array = Arr::setNestedElement([], '1.2.3.4', 'value');
10053800cookie-checkSo erstellen Sie ein verschachteltes Array aus einem Array in PHPyes
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