在for、foreach循環體中添加數組元素


在開發工作中遇到這樣一種情形,需要在循環體中動態向遍歷中的數組添加元素並在當前循環遍歷中使用數組的全部元素。

首先使用foreach循環來遍歷數組,將代碼簡化抽象如下:

$arr = array(1, 2, 3, 4, 5, 6, 7, 8);
foreach($arr as $v) {
	if($v % 2 == 0) $arr[] = 11;
	echo $v . '  ';
}

結果只打印出數組原來已有元素,在循環體中動態添加的元素並沒有打印出來。

后來改用for循環,coding如下:

$arr = array(1, 2, 3, 4, 5, 6, 7, 8);
$count = count($arr);
for($i=0;$i<$count;$i++) {
	if($arr[$i] % 2 == 0) {
		$arr[] = 11;
		$count ++;
	}
	echo $arr[$i] . '  ';
}

這一次將數組原有的元素和動態添加的元素都打印出來了。

后來在網上查資料,發現foreach循環中如果在變量前加引用符號&,也可以將數組的所有元素打印出來,coding如下:

$arr = array(1, 2, 3, 4, 5, 6, 7, 8);
foreach($arr as &$v) {
	if($v % 2 == 0) $arr[] = 11;
	echo $v . '  ';
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM