首頁  >  文章  >  後端開發  >  PHP循環學習四:怎麼利用foreach語句遍歷和修改陣列元素

PHP循環學習四:怎麼利用foreach語句遍歷和修改陣列元素

青灯夜游
青灯夜游原創
2021-07-29 14:03:465478瀏覽

在之前的文章《PHP循環學習三:如何使用for迴圈語句遍歷數組》中,我們帶大家了解了for迴圈語句,分析了for迴圈語句的執行過程,透過程式碼實例介紹了使用for迴圈語句遍歷數組的方法。利用for語句遍歷數組的方法有點複雜,今天我們來學習如何利用foreach語句來遍歷數組及修改數組中的元素,下面來一起學習吧! !

foreach是專門為遍歷數組而設計的語句,是遍歷數組時常用的方法,在遍歷數組方面提供了很大的便利;PHP5後還可以遍歷對象(foreach僅能夠應用於數組和對象)。 (附:PHP函數之array數組函數視訊講解

foreach語句遍歷數組與數組下標無關,且可以用於不連續的索引數組和以字串為下標的關聯數組。

foreach語句解析

下面我們先來了解foreach語句,該語句有兩種語法格式:

語法格式1:

foreach ($array as $value){
    语句块;
}

遍歷給定的 $array 數組,在每個循環中將目前數組的值賦給$value

語法格式2:

foreach ($array as $key => $value){
    语句块;
}

遍歷給定的 $array 數組,每次循環中都會將目前數組的值賦給$value,鍵名賦給$key

說明:

foreach語句在每次迴圈時,陣列內部的指標會向前移一步,這樣在下一次迴圈中會得到下一個陣列元素,直到遍歷到數組的末尾,停止遍歷並退出循環。

foreach語句遍歷和修改數組

#了解foreach語句的語法構成,接下來我們就來實際操作下,透過程式碼實例來具體看看foreach語句如何遍歷數組。

實例1:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
foreach ($array as $value) { 
    echo $value . "<br/>";
} 
?>

輸出:

香蕉
苹果
梨子
橙子
橘子
榴莲

#實例2:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
foreach ($array as $key => $value) { 
    echo "键名为:".$key.",键值为:".$value . "<br/>";
} 
?>

輸出:

PHP循環學習四:怎麼利用foreach語句遍歷和修改陣列元素

遍歷修改數組元素

一般情況下,使用foreach語句遍歷數組時,是對數組的備份進行操作,一般不會影響數組本身。

例如:在循環內部修改數組,然後在循環外訪問數組,會發現數組沒有改變

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(1,2,3,4,5,);
foreach ($array as $value) { 
    $value = $value*2;  // 元素值乘以2
}
var_dump($array)
?>

輸出:

PHP循環學習四:怎麼利用foreach語句遍歷和修改陣列元素

##可以看出,陣列元素沒有改變。但有時候是需要透過循環來改變數組,那該怎麼辦?

可以採用引用迴圈(在 

$value 之前加上&,這樣foreach語句會以引用賦值而不是拷貝一個值),那麼在迴圈體內對數組進行操作,就會影響數組本身。

<?php
$array= array(1,2,3,4,5,);
foreach ($array as &$value) { 
    $value = $value*2;  // 元素值乘以2
}
var_dump($array)
?>

輸出:


PHP循環學習四:怎麼利用foreach語句遍歷和修改陣列元素

可以看出,在最後一個元素前,有一個

&,那是因為數組最後一個元素的$value 引用在foreach 迴圈之後仍會保留。我們需要使用unset() 來銷毀。

<?php
$array= array(1,2,3,4,5,);
foreach ($array as &$value) { 
    $value = $value*2;  // 元素值乘以2
}
unset($value); // 最后取消掉引用
var_dump($array)
?>

#輸出:


PHP循環學習四:怎麼利用foreach語句遍歷和修改陣列元素

#推薦:PHP面試題大匯總(收藏) 》《php影片教學

以上是PHP循環學習四:怎麼利用foreach語句遍歷和修改陣列元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn