PHP Splice в следующую итерацию цикла - PullRequest
0 голосов
/ 29 декабря 2018

Я хотел бы добавить к следующей итерации цикла.Например, если значение $ 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 голосов
/ 29 декабря 2018
$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;
}
0 голосов
/ 29 декабря 2018

Вероятно, это проще сделать с помощью 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 
)

Демонстрация на 3v4l.org

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...