我想添加到循环的下一个迭代中。例如,如果$ 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
这是一个简化的示例。
答案 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
)
答案 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;
}