PHP Splice进入循环的下一个迭代

时间:2018-12-29 04:55:53

标签: php loops

我想添加到循环的下一个迭代中。例如,如果$ value为3,则在保留数组的其余部分的同时,为下一个循环拼接一个新值。

$array=[1,2,3,4,5];
foreach($array as $key=>&$value){
 if($value===3){array_splice($array,$key,0,'test');}
 echo $value;
}
// 1,2,3,5

我希望输出为:

// 1,2,3,'test',4,5

这是一个简化的示例。

2 个答案:

答案 0 :(得分:2)

使用array_search查找要在其后添加元素的值的键可能更容易做到:

$array=[1,2,3,4,5];
if (($k = array_search(3, $array)) !== false) {
    array_splice($array, $k+1, 0, array('test'));
}
print_r($array);

输出:

Array ( 
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => test
    [4] => 4
    [5] => 5 
)

Demo on 3v4l.org

答案 1 :(得分:2)

$array=[1,2,3,4,5];
foreach($array as $key=>&$value){
 if($value===3){$array=array_merge(['test'],array_slice($array,$key+1));}
 echo $value;
}