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

I need to be able to echo 1 and 2 with an array_push in the same foreach loop of that array.

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

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

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

EDIT: Solved it myself by not using a foreach but a while loop

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

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

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

I need to be able to echo 1 and 2 with an array_push in the same foreach loop of that array.

Implode it.

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

foreach ($arr as &$arr_number) {

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