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