将以前的数组值添加到较新的数组值

时间:2012-03-26 12:00:56

标签: php

$test = 'test1/test2/test3/test4';

我正在尝试从上面的$test获取一个数组,我想输出如下所示。

Array
(
    [0] => /
    [1] => /test1/
    [2] => /test1/test2/
    [3] => /test1/test2/test3/
    [4] => /test1/test2/test3/test4/
)

我已经尝试过循环,但无法弄清楚如何使它完全正确。

3 个答案:

答案 0 :(得分:1)

尝试循环:

$test = 'test1/test2/test3/test4';
$test_arr = explode("/", $test);
$test_size = count($test_arr);
$count = 1;
$new_test_arr = array('/');
for ($i=0; $i<$test_size; $i++)
{
  $new_test_arr[$count] = $new_test_arr[$i] . $test_arr[$i] . "/"
  $count++;
}

答案 1 :(得分:0)

这种情况非常简单明了

$test = 'test1/test2/test3/test4';
$arr = explode("/", $test);

$t = "";
$newArray = array("/");
foreach($arr as $value) {
   $t .= "/".$value;
   $newArray[] = $t;
}

print_r($newArray);

Demo

答案 2 :(得分:0)

这是一种非常紧凑的方式:

$parts = explode("/", $test);
for($i = 0; $i <= count($parts); ++$i) {
    echo "/".implode("/", array_slice($parts, 0, $i))."\n";
}

效率不是很高,但我认为效率并不重要,只会做一次微不足道的事情。从好的方面来说,循环不会修改变量,这样可以更容易推理。

<强> See it in action