例如,用户给我一个这样的数组:
$input = ['countries', 'cities', 'towns'];
我想创建一个这样的数组,我知道正确的是:
$output["countries"]["cities"]["towns"] = "Downtown";
另一个例子:
$input = ['cities', '0'];
$output["cities"][0] = "Nice";
我想使用给我的键作为键来创建键/值数组。
我不知道给我的阵列的长度。
答案 0 :(得分:1)
您可以在循环中保存最后一个数组的引用:
$input = ['countries', 'cities', 'towns'];
$output = [];
$ref = &$output;
foreach ($input as $value) {
$ref[$value] = [];
$ref = &$ref[$value];
}
$ref="Downtown";
print_r($output);
输出:
Array
(
[countries] => Array
(
[cities] => Array
(
[towns] => Downtown
)
)
)
你的第二个例子:
$input = ['cities', '0'];
$output = [];
$ref = &$output;
foreach ($input as $value) {
$ref[$value] = [];
$ref = &$ref[$value];
}
$ref="Nice";
print_r($output);
输出:
Array
(
[cities] => Array
(
[0] => Nice
)
)