PHP - 同一数组的foreach循环中的array_push不会更新数组

时间:2014-03-04 07:25:59

标签: php arrays loops foreach

我需要能够在该数组的同一个foreach循环中使用array_push回显1和2。

<?php
$arr = array('1');

foreach ($arr as &$arr_number) {
   echo "$arr_number\n"; //this print 1
   array_push($arr, '2');
}

foreach ($arr as &$arr_number) {
   echo "$arr_number\n"; //this print 1 and then 2
}
?>

编辑: 不使用foreach而是使用while循环解决了这个问题

    <?php
    $arr = array('1');

 while ( list($key, $value) = each($arr) ) {
    echo "$value\n";

    if ( !in_array('2', $arr) ) {
       array_push($arr, '2');
    }
 }
 ?>

1 个答案:

答案 0 :(得分:3)

  

我需要能够使用array_push回显1和2   foreach这个数组的循环。

内爆。

<?php
$arr = array('1');

foreach ($arr as &$arr_number) {

   array_push($arr, '2');
   echo implode(' ',$arr); //"prints" 1 2
}