数组链的值列表

时间:2013-05-26 12:38:36

标签: php arrays string

$a = Array("one", "two", "three");
$b = "text"

我一直试图将上面的数组转换成这样的东西:

$a = Array("one" => Array("two" => Array("three" => "text")));

我正在寻找一种方法来做到这一点而不用即兴创作,但到目前为止没有运气和谷歌似乎出现了一切,但我正在寻找。

2 个答案:

答案 0 :(得分:2)

使用递归

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);

答案 1 :(得分:0)

$i=count($array)-1;
$b=array();
$a=$array[$i];
while($i>0) {
  $b=array($array[$i-1]=>$a);
  $a=$b;
  $i--;
}

var_dump($a);