您好,登錄后才能下訂單哦!
本篇內容介紹了“php如何在foreach循環中修改原數組”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在php中,只需要foreach語句采用引用循環的方式,那么在循環體內對原數組進行操作(修改),就會影響原數組本身;語法“foreach ($array as &$value){//循環體語句塊;}”或“foreach ($array as $key => &$value){//循環體語句塊;}”。
本教程操作環境:windows7系統、PHP8.1版、DELL G3電腦
foreach是專門為遍歷數組而設計的語句,是遍歷數組時常用的方法,在遍歷數組方面提供了很大的便利;PHP5后還可以遍歷對象(foreach僅能夠應用于數組和對象)。
foreach語句遍歷數組與數組下標無關,且可以用于不連續的索引數組和以字符串為下標的關聯數組。
foreach語句有兩種語法格式:
語法格式1:
登錄后復制foreach ($array as $value){
//循環體語句塊;
}
遍歷給定的 $array 數組,在每次循環中將當前數組的值賦給 $value。
語法格式2:
foreach ($array as $key => $value){
//循環體語句塊;
}
遍歷給定的 $array 數組,在每次循環中會將當前數組的值賦給 $value,鍵名賦給 $key。
說明:
foreach語句在每次循環時,數組內部的指針會向前移一步,這樣在下一次循環中會得到下一個數組元素,直到遍歷到數組的末尾,停止遍歷并退出循環。
在foreach循環中修改原數組
一般情況下,使用foreach語句遍歷數組時,是對數組的備份進行操作,一般不會影響數組本身。
例如:在循環內部修改數組,然后在循環外訪問數組,會發現數組沒有改變
可以看出,兩個輸出是一樣的,數組元素沒有發生變化;此時在foreach循環中對原數組的修改是無效的。
但有時候是需要通過foreach循環來改變數組,那要怎么辦?
可以采用引用循環(就是在 $value
之前加上 &
,這樣foreach語句會以引用賦值而不是拷貝一個值),那么在循環體內對原數組進行操作,就會影響原數組本身。
可以看出:數組元素發生了變化,元素值都乘以了2。
但最后一個元素前,多了一個&
,這又是怎么了?怎么去除?
這因為數組最后一個元素的 $value
引用在 foreach 循環之后仍會保留。我們需要在輸出數組前,使用unset() 來將其銷毀。
登錄后復制unset($value); // 最后取消掉引用
var_dump($array)
&
符消失了!
“php如何在foreach循環中修改原數組”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。