foreach将每个元素连接到下一个元素

时间:2016-11-10 15:48:29

标签: php

我想将数组的每个元素连接到下一个元素。我希望输出数组为:

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

我尝试了以下方法将每个字符串连接到自身:

$url = preg_split("/[\s\/]+/", "test/test2/test3/test4");
foreach ($url as $dir) {
   $dir .= $dir;
} 

任何帮助表示感谢。

4 个答案:

答案 0 :(得分:1)

也许是另一种方式

<?php
$data = array( 'test', 'test2', 'test3', 'test4' );
for( $i = 0; $i < count( $data ); $i++ )
{
  if( $i != 0 )
  {
    $new[ $i ] = $new[ $i - 1 ] .'/'. $data[ $i ];
  }
  else
  {
    $new[ $i ] = $data[ $i ];
  }
}

var_dump($ new);

输出

array(4) {
  [0]=>
  string(4) "test"
  [1]=>
  string(10) "test/test2"
  [2]=>
  string(16) "test/test2/test3"
  [3]=>
  string(22) "test/test2/test3/test4"
}

答案 1 :(得分:1)

您应该在$ my_array

中获得所需的结果
$url = explode("/", "test/test2/test3/test4");

$str ='';
foreach($url as $key => $value){
  if ( $str == '') {
     $str .= $str;
  } else {
    $str .= '/'.$str;
  }
  $my_array[$key] = $str ;
  echo $str . '<br />';

}

var_dump($my_array);

答案 2 :(得分:0)

$url = preg_split("/[\s\/]+/", "test/test2/test3/test4");
$arr = array();
$str = '';
foreach ($url as $key => $dir) {

    if ($key !== 0) {
        $str .= '/' . $dir;
    } else {
        $str .= $dir;
    }

    $arr[] = $str;
}

在每次迭代中,使用新值连接一个字符串,并将其作为输出数组的单独值添加。

答案 3 :(得分:0)

这是一个快速的方法。对于简单拆分,只需使用explode()

$url  = explode("/", "test/test2/test3/test4");

foreach($url as $value) {
    $temp[]   = $value;
    $result[] = implode("/", $temp);
}

每次循环时,将当前值添加到临时数组并将其内嵌到结果的下一个元素中。