一、foreach的返回值類型
foreach的返回值類型有兩種,一種是傳入的數組的元素類型,一種是false。若傳入的數組為空,則返回false。
$array = array(1, 2, 3);
foreach ($array as $item) {
echo $item;
}
// 輸出:123
二、使用引用獲取foreach的返回值
使用引用獲取foreach的返回值可以使遍歷的元素在遍歷過程中可被修改。如果遍歷的數組本來就是以引用的方式傳遞,則可以通過在$item之前加上&符號來實現引用。
$array = array(1, 2, 3);
foreach ($array as &$item) {
$item++;
}
unset($item); // 重置引用
echo implode(',', $array);
// 輸出:2,3,4
三、使用list獲取foreach的返回值
使用list獲取foreach的返回值可以將每個元素保存到不同的變數中。如果數組中元素的數量少於list中變數的數量,則未匹配到的變數將被賦值為null。
$array = array('apple', 'banana', 'cherry');
foreach ($array as $key => $value) {
list($var1, $var2) = array($key, $value);
echo "[$var1] $var2 ";
}
// 輸出:[0] apple [1] banana [2] cherry
四、使用break和continue控制foreach的返回值
使用break可以結束foreach循環,而continue則可以跳過當前的循環並進入下一次循環。
$array = array(1, 2, 3, 4, 5);
foreach ($array as $item) {
if ($item === 3) {
break;
}
if ($item === 2) {
continue;
}
echo $item;
}
// 輸出:1
五、foreach在對象中的應用
在對象中,可以通過實現Iterator介面來自定義對象的遍歷方式,並通過foreach遍歷對象。
class MyClass implements Iterator {
private $position = 0;
private $array = array(
"firstelement",
"secondelement",
"lastelement",
);
public function __construct() {
$this->position = 0;
}
public function rewind() {
$this->position = 0;
}
public function current() {
return $this->array[$this->position];
}
public function key() {
return $this->position;
}
public function next() {
++$this->position;
}
public function valid() {
return isset($this->array[$this->position]);
}
}
$obj = new MyClass;
foreach($obj as $key => $value) {
echo "$key: $value\n";
}
// 輸出:0: firstelement 1: secondelement 2: lastelement
六、foreach在多維數組中的應用
在多維數組中,可以使用foreach嵌套的方式遍歷每個元素。
$array = array(
array('id' => 1, 'name' => 'apple'),
array('id' => 2, 'name' => 'banana'),
array('id' => 3, 'name' => 'cherry')
);
foreach ($array as $value) {
foreach ($value as $key => $item) {
echo "$key: $item, ";
}
echo "
";
}
// 輸出:
// id: 1 , name: apple,
// id: 2 , name: banana,
// id: 3 , name: cherry,
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/187491.html
微信掃一掃
支付寶掃一掃