PHP是一門重要的編程語(yǔ)言,其中each()函數(shù)是其重要的函數(shù)之一。該函數(shù)可以很方便地遍歷數(shù)組并返回其鍵名和鍵值對(duì)。在這篇文章中,我們將詳細(xì)介紹該函數(shù)的用法,并結(jié)合實(shí)際案例演示其用途。
首先,我們來看一下each()函數(shù)的語(yǔ)法。它的語(yǔ)法如下所示:
<?php each(array $array): array|false?>
該函數(shù)接收一個(gè)array類型的參數(shù),即我們要遍歷的數(shù)組。它的返回值為一個(gè)由“鍵名”、“鍵值”、“當(dāng)前指針位置”和“下一個(gè)指針位置”組成的數(shù)組。如果沒有下一個(gè)指針位置了,則該函數(shù)返回false。
舉例說明,假設(shè)我們有一個(gè)名為$fruits的數(shù)組,其中保存了一些水果的信息:<?php
$fruits = array("apple", "banana", "cherry", "durian");
?>
我們可以使用each()函數(shù)遍歷該數(shù)組,并輸出每個(gè)元素的鍵名和鍵值:<?php
reset($fruits);
while (list($key, $value) = each($fruits)) {
echo "$key: $value\n";
}
?>
上面的代碼使用reset()函數(shù)將數(shù)組指針移到第一個(gè)元素,然后使用while循環(huán)遍歷數(shù)組。在每次循環(huán)中,使用list()函數(shù)將返回值賦值給$key和$value兩個(gè)變量,并將它們打印出來。代碼的執(zhí)行結(jié)果如下所示:0: apple
1: banana
2: cherry
3: durian
在上面的例子中,我們使用了reset()函數(shù)將數(shù)組指針移到了第一個(gè)元素,而each()函數(shù)則負(fù)責(zé)將指針移到下一個(gè)元素。當(dāng)指針移動(dòng)到數(shù)組末尾時(shí),each()函數(shù)返回false,循環(huán)停止。
除了遍歷數(shù)組,each()函數(shù)還可以用于修改數(shù)組元素的值。例如,我們可以將上面的例子修改成如下所示:<?php
reset($fruits);
while (list($key, $value) = each($fruits)) {
$value = ucwords($value); // 將元素值的首字母轉(zhuǎn)成大寫
$fruits[$key] = $value; // 修改數(shù)組元素的值
}
?>
上面的代碼將每個(gè)元素的值的首字母轉(zhuǎn)為大寫,并將修改后的值賦回?cái)?shù)組中對(duì)應(yīng)的位置。這可以達(dá)到修改數(shù)組元素的值的效果。
除了修改值,each()函數(shù)還可以用來刪除元素。例如:<?php
reset($fruits);
while (list($key, $value) = each($fruits)) {
if ($key == 2 || $key == 3) { // 刪除兩個(gè)元素
unset($fruits[$key]); // 刪除數(shù)組元素
}
}
?>
上面的代碼使用unset()函數(shù)刪除了數(shù)組中的兩個(gè)元素,即‘cherry’和‘durian’。注意,在刪除元素后,由于指針位置已經(jīng)改變,需要使用reset()函數(shù)將指針移回到第一個(gè)元素,再繼續(xù)執(zhí)行each()函數(shù)。
總的來說,each()函數(shù)是PHP中一個(gè)非常有用的函數(shù),我們可以使用它來遍歷數(shù)組、修改元素的值、甚至是刪除元素。當(dāng)然,在使用該函數(shù)時(shí),我們也需要注意指針的位置和數(shù)組的變化,以免出現(xiàn)錯(cuò)誤的結(jié)果。上一篇php each( )
下一篇php each 7.2