Foreach 루프에서 PHP 배열 값 변경(중복 수정)
다차원 배열에서 foreach 루프를 사용하여 각 요소를 순회하면 다음과 같은 결과가 나타날 수 있습니다. 원본 배열을 수정하려고 할 때 복잡성이 발생합니다.
다음 사항을 고려하세요. 예:
$fields = [ "names" => [ "type" => "text", "class" => "name", "name" => "name", "text_before" => "name", "value" => "", "required" => true, ] ];
이제 필수 입력 사항이 채워졌는지 확인하는 함수가 있다고 가정해 보겠습니다.
function checkForm($fields) { foreach ($fields as $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$field]['value'] = "Some error"; // Here's the issue } } return $fields; }
문제가 있는 줄은 $fields[$field]['value'입니다. ] = "일부 오류";. 원래 배열을 수정하려면 아래와 같이 값 대신 현재 요소의 키에 액세스해야 합니다.
foreach ($fields as $key => $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$key]['value'] = "Some error"; } }
$fields[$key]['value 내에서 $key 사용에 유의하세요. '] 외부 루프에서 현재 요소의 키를 참조합니다. 이렇게 하면 원래 배열이 의도한 대로 수정됩니다.
위 내용은 Foreach 루프 내에서 PHP 배열 값을 올바르게 수정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!