$a = Array("one", "two", "three");
$b = "text"
我一直在尝试将上面的数组转换成这样的东西:
$a = Array("one" => Array("two" => Array("three" => "text")));
我正在寻找一种不即兴发挥的方法,但到目前为止没有运气,谷歌搜索似乎出现了一切,但我正在寻找什么。
使用递归
function make(array $array, $value) {
$first = array_shift($array);
if (count($array) === 0) {
return array($first => $value);
} else {
return array($first => make($array, $value);
}
}
它获取数组的第一项并将其放入$first
. 放入时$first
从 中删除$array
。然后它检查数组是否还有一些项目。如果是,则继续循环,否则结束循环。
希望这对你有用
所以你可以这样称呼它:
$a = Array("one", "two", "three");
$b = "text";
$array = make($a, $b);
$i=count($array)-1;
$b=array();
$a=$array[$i];
while($i>0) {
$b=array($array[$i-1]=>$a);
$a=$b;
$i--;
}
var_dump($a);