>  기사  >  백엔드 개발  >  PHP 루프 학습 4: foreach 문을 사용하여 배열 요소를 탐색하고 수정하는 방법

PHP 루프 학습 4: foreach 문을 사용하여 배열 요소를 탐색하고 수정하는 방법

青灯夜游
青灯夜游원래의
2021-07-29 14:03:465478검색

이전 글 "PHP 루프 학습 3: for 루프 문을 사용하여 배열을 탐색하는 방법"에서는 for 루프 문에 대한 이해와 for 루프 문의 실행 과정을 분석하고 사용법을 소개했습니다. 코드 예제를 통한 for 루프 문의 배열 순회 방법. for 문을 사용하여 배열을 순회하는 방법은 조금 복잡합니다. 오늘은 foreach 문을 사용하여 배열을 순회하고 배열의 요소를 수정하는 방법을 배워보겠습니다. !

foreach는 배열 순회를 위해 특별히 설계된 명령문입니다. 배열 순회 시 일반적으로 사용되는 방법입니다. PHP5 이후에는 객체 순회도 가능합니다(foreach는 배열 및 객체에만 적용 가능). (첨부파일: PHP 함수의 배열 배열 함수 영상 설명)

foreach 문은 배열을 순회하며 배열 첨자와는 아무런 관련이 없으며 문자열을 첨자로 하는 불연속형 인덱스 배열 및 연관 배열에 사용할 수 있습니다.

foreach 문 분석

먼저 두 가지 구문 형식을 갖는 foreach 문을 살펴보겠습니다.

문법 형식 1:

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

주어진 $array 코드>를 탐색합니다. 배열의 경우 각 루프의 <code>$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 루프 학습 4: 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 루프 학습 4: foreach 문을 사용하여 배열 요소를 탐색하고 수정하는 방법

可以看出,数组元素没有发生变化。但有时候是需要通过循环来改变数组,那要怎么办?

可以采用引用循环(在 $value 之前加上 &,这样foreach语句会以引用赋值而不是拷贝一个值),那么在循环体内对数组进行操作,就会影响数组本身。

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

输出:

PHP 루프 학습 4: foreach 문을 사용하여 배열 요소를 탐색하고 수정하는 방법

可以看出,在最后一个元素前,有一个&

구문 형식 2:

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

주어진 $array 배열을 탐색하고 각 루프에서 현재 배열의 값을 $value에 할당합니다. 키 이름 $key에 할당되었습니다. PHP 루프 학습 4: foreach 문을 사용하여 배열 요소를 탐색하고 수정하는 방법

설명: Foreach 문이 루프될 때마다 배열 내부의 포인터가 한 단계 앞으로 이동하므로 배열의 끝으로 이동할 때까지 다음 루프에서 다음 배열 요소를 얻습니다. , 순회를 중지하고 루프를 종료합니다.

foreach 문은 배열을 순회하고 수정합니다🎜🎜🎜🎜 이제 foreach 문의 구문을 이해했으므로 실제로 실행해보고 코드 예제를 통해 foreach 문이 어떻게 배열을 순회하는지 살펴보겠습니다. 🎜🎜🎜인스턴스 1: 🎜🎜🎜rrreee🎜출력: 🎜rrreee🎜🎜인스턴스 2: 🎜🎜rrreee🎜출력: 🎜🎜PHP 루프 학습 4: foreach 문을 사용하여 배열 요소를 탐색하고 수정하는 방법🎜🎜🎜배열 요소 탐색 및 수정🎜🎜🎜일반적으로 foreach 문을 사용하여 배열을 탐색할 때, 어레이가 수행되는 경우 작업은 일반적으로 어레이 자체에 영향을 주지 않습니다. 🎜🎜예: 루프 내부 배열을 수정한 다음 루프 외부 배열에 액세스하면 배열이 변경되지 않은 것을 확인할 수 있습니다🎜rrreee🎜출력: 🎜🎜🎜PHP 루프 학습 4: foreach 문을 사용하여 배열 요소를 탐색하고 수정하는 방법🎜🎜배열 요소가 변경되지 않은 것을 볼 수 있습니다. 그런데 가끔 루프를 통해 배열을 변경해야 하는 경우가 있는데 어떻게 해야 할까요? 🎜🎜참조 루프를 사용할 수 있습니다($value 앞에 &를 추가하면 foreach 문이 값을 복사하는 대신 참조로 값을 할당함). 루프 본문에서의 배열 작업 작업은 배열 자체에 영향을 미칩니다. 🎜rrreee🎜출력: 🎜🎜🎜PHP 루프 학습 4: foreach 문을 사용하여 배열 요소를 탐색하고 수정하는 방법 🎜🎜마지막 요소 앞에 &가 있는 것을 볼 수 있습니다. 이는 배열의 마지막 요소에 대한 $value 참조가 foreach 루프 후에도 계속 유지되기 때문입니다. 이를 파괴하려면 unset()을 사용해야 합니다. 🎜rrreee🎜출력: 🎜🎜🎜🎜🎜🎜🎜추천: 🎜 《🎜PHP 면접 질문 요약(컬렉션)🎜》 《🎜php 비디오 튜토리얼🎜》🎜

위 내용은 PHP 루프 학습 4: foreach 문을 사용하여 배열 요소를 탐색하고 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.