> 백엔드 개발 > PHP 문제 > foreach를 사용하여 PHP에서 배열을 수정하는 방법

foreach를 사용하여 PHP에서 배열을 수정하는 방법

藏色散人
풀어 주다: 2023-03-06 12:48:01
원래의
2688명이 탐색했습니다.

php foreach를 사용하여 배열을 수정하는 방법: 먼저 PHP 샘플 파일을 만든 다음 foreach($array as $k => $v){$v = 1; }" .

foreach를 사용하여 PHP에서 배열을 수정하는 방법

추천: "PHP 비디오 튜토리얼"

PHP에서 배열 값을 변경하기 위해 foreach를 사용할 때 발생하는 문제

PHP 문서의 foreach 페이지로 가서 다음을 작성하세요.

"The foreach 구문 구조는 배열에 대한 간단한 탐색 방법을 제공합니다. foreach는 배열과 객체에만 적용할 수 있습니다. 다른 데이터 유형의 변수나 초기화되지 않은 변수에 적용하려는 경우 두 가지 구문이 있습니다.

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement
로그인 후 복사

첫 번째 형식은 루프를 통과할 때마다 현재 셀의 값이 $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); // 最后取消掉引用
로그인 후 복사

이것은 성공할 것입니다.

위 내용은 foreach를 사용하여 PHP에서 배열을 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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