如何从循环 PHP 创建递归数组?
How to create recursive array from the loop PHP?
我有一个如下所示的数组及其动态数组。
$array = [10,20,30,40,50];
我想使用上述数组值递归地创建另一个数组。看起来像下面
Array
(
[10] => Array
(
[20] => Array
(
[30] => Array
(
[40] => Array
(
[50] => Array
(
[label] => LABEL
)
)
)
)
)
)
任何人都可以帮助/协助上述查询吗?
非常感谢您的帮助。
提前致谢。
这只是一个循环,不是递归的。如果它是递归的,则需要 2 个函数或从其内部调用相同的函数。这看起来有点像,但它只是一个循环。
遍历每个数字并使用数字作为键并使用累积数组作为值创建一个新数组。这样做意味着原始数组中的第一项将是完成数组中最深的一项,因此需要 array_reverse
才能按照您描述的方式获取它。
$array = [10,20,30,40,50];
$newarray=[];
foreach (array_reverse($array) as $number) $newarray = [$number => $newarray];
print_r($newarray);
<?php
$array = [10, 20, 30, 40, 50];
$matrix = []; // Final result.
$pointer = &$matrix; // Reference of deepest array.
foreach ($array as $item) {
$pointer[$item] = []; // Create a deeper array.
$pointer = &$pointer[$item]; // Move the reference to the deeper array.
}
$pointer['label'] = "LABEL";
// Print result.
print(json_encode($matrix, JSON_PRETTY_PRINT));
输出
{
"10": {
"20": {
"30": {
"40": {
"50": {
"label": "LABEL"
}
}
}
}
}
}
我有一个如下所示的数组及其动态数组。
$array = [10,20,30,40,50];
我想使用上述数组值递归地创建另一个数组。看起来像下面
Array
(
[10] => Array
(
[20] => Array
(
[30] => Array
(
[40] => Array
(
[50] => Array
(
[label] => LABEL
)
)
)
)
)
)
任何人都可以帮助/协助上述查询吗?
非常感谢您的帮助。
提前致谢。
这只是一个循环,不是递归的。如果它是递归的,则需要 2 个函数或从其内部调用相同的函数。这看起来有点像,但它只是一个循环。
遍历每个数字并使用数字作为键并使用累积数组作为值创建一个新数组。这样做意味着原始数组中的第一项将是完成数组中最深的一项,因此需要 array_reverse
才能按照您描述的方式获取它。
$array = [10,20,30,40,50];
$newarray=[];
foreach (array_reverse($array) as $number) $newarray = [$number => $newarray];
print_r($newarray);
<?php
$array = [10, 20, 30, 40, 50];
$matrix = []; // Final result.
$pointer = &$matrix; // Reference of deepest array.
foreach ($array as $item) {
$pointer[$item] = []; // Create a deeper array.
$pointer = &$pointer[$item]; // Move the reference to the deeper array.
}
$pointer['label'] = "LABEL";
// Print result.
print(json_encode($matrix, JSON_PRETTY_PRINT));
输出
{
"10": {
"20": {
"30": {
"40": {
"50": {
"label": "LABEL"
}
}
}
}
}
}