$test = 'test1/test2/test3/test4';
我正在尝试从该$test
中获取一个数组,我想在上面输出如下。
Array
(
[0] => /
[1] => /test1/
[2] => /test1/test2/
[3] => /test1/test2/test3/
[4] => /test1/test2/test3/test4/
)
我已经尝试过循环,但不太弄清楚如何使其完全正确。
尝试像这样做循环:
$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++;
}
这里有一种非常紧凑的方法:
$parts = explode("/", $test);
for($i = 0; $i <= count($parts); ++$i) {
echo "/".implode("/", array_slice($parts, 0, $i))."'n";
}
效率不是很高,但我不认为效率在你只会做一次的琐碎事情上很重要。从好的方面来说,循环不修改任何变量,这使得推理更容易。
看到它的实际效果。
对于这种情况,一个非常简单的方法将是
$test = 'test1/test2/test3/test4';
$arr = explode("/", $test);
$t = "";
$newArray = array("/");
foreach($arr as $value) {
$t .= "/".$value;
$newArray[] = $t;
}
print_r($newArray);