> 백엔드 개발 > PHP 문제 > PHP foreach의 값을 수정하는 방법

PHP foreach의 값을 수정하는 방법

藏色散人
풀어 주다: 2023-03-12 13:04:02
원래의
2306명이 탐색했습니다.

php foreach 값을 수정하는 방법: 1. PHP 샘플 파일을 생성합니다. 2. "foreach($array as $k => $v){$v = 1;}"를 통해 수정합니다.

PHP foreach의 값을 수정하는 방법

이 기사의 운영 환경: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿