php foreach 값을 수정하는 방법: 1. PHP 샘플 파일을 생성합니다. 2. "foreach($array as $k => $v){$v = 1;}"를 통해 수정합니다.
이 기사의 운영 환경: windows7 시스템, PHP7.1 버전, DELL G3 컴퓨터
php foreach의 값을 수정하는 방법은 무엇입니까?
foreach를 사용하여 배열 값을 변경할 때의 문제
PHP 문서의 foreach 페이지로 가서 다음을 작성하세요.
"foreach 구문 구조는 배열을 탐색하는 간단한 방법을 제공합니다. foreach는 할 수 있습니다 배열과 객체에만 적용할 수 있으며, 다른 데이터 유형의 변수나 초기화되지 않은 변수에 적용하려고 하면 오류 메시지가 표시됩니다. 두 가지 구문이 있습니다:
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
첫 번째 형식은 지정된 array_expression 배열을 반복합니다. $value에 할당되고 배열 내부의 포인터가 한 단계 앞으로 이동합니다(따라서 다음 루프에서 다음 셀을 얻습니다).
두 번째 형식은 키 이름을 제외하고 동일한 작업을 수행합니다. 현재 셀도 매번 업데이트됩니다. $key 변수는 루프에 할당됩니다. "
Then" 첫 번째 형식은 지정된 array_expression 배열을 순회하며, 현재 셀의 값은 $value에 할당됩니다. 배열 내부의 포인터가 한 단계 앞으로 이동합니다. (그러면 다음 루프에서 다음 단위를 얻습니다.) "무슨 뜻인가요? 즉, foreach를 사용하여 배열을 순회하면 배열 자체가 아니라 지정된 배열의 복사본에서 작동합니다. 당신의 복제물이 있는 것과 마찬가지로, 다른 사람들이 당신의 복제물을 어떻게 때리고 걷어차더라도 그것은 당신에게 아무런 영향을 미치지 않습니다.
예:
foreach($array as $k => $v){ $v = 1; }
이러한 수정 방법은 $array 자체를 수정하는 것이 아니라 복사하는 배열을 수정하는 것입니다. 따라서 $array에는 영향을 미치지 않습니다.
그럼 어떻게 해야 할까요? 이를 수행하려면:
foreach($array as $k => $v){ $array[$k] = 1; }
$k가 $v처럼 복사되더라도 복사된 $k의 값은 여전히 원래 배열의 $k 값과 동일하므로 성공할 것입니다.
더 고급 방법도 있습니다. $v 앞에 &를 추가하여 배열 요소를 쉽게 수정할 수 있습니다. 이 방법은 값을 복사하는 대신 참조로 할당합니다. 예:
foreach($array as &$v){ $v = 1; } unset($v); // 最后取消掉引用
이것은 성공할 것입니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP foreach의 값을 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!