【发布时间】:2015-11-16 01:29:00
【问题描述】:
有一个数组 A,它有可变数量的值。 我想将数组 A 的值转换为数组 B 的索引。
语言:PHP
例子:
//array A
$a={'a','b','c','d'};
//converted to an index of array B
$b['a']['b']['c']['d']='somevalue';
问题是数组A的值个数是灵活的。
有出路吗?谢谢。
【问题讨论】:
有一个数组 A,它有可变数量的值。 我想将数组 A 的值转换为数组 B 的索引。
语言:PHP
例子:
//array A
$a={'a','b','c','d'};
//converted to an index of array B
$b['a']['b']['c']['d']='somevalue';
问题是数组A的值个数是灵活的。
有出路吗?谢谢。
【问题讨论】:
$a=['a','b','c','d'];
$b = [];
$c = &$b;
foreach($a as $key) {
$c[$key] = $c;
$c = &$c[$key];
}
$c = 'somevalue';
unset($c);
var_dump($b);
【讨论】:
感谢@Mark Baker。我修改了一些代码,它可以工作了。
$a = array('a', 'b', 'c', 'd');
$b = array();
rsort($a);
$i = 0;
foreach ($a as $v)
{
if ($i++ > 0)
{
$c = array();
$c[$v] = $b;
$b = $c;
}
else
{
$b[$v] = 111;
}
}
var_dump($b);
结果,正是我想要的:
array(1) {
["a"]=>
array(1) {
["b"]=>
array(1) {
["c"]=>
array(1) {
["d"]=>
int(111)
}
}
}
}
【讨论】: