PHP에서 foreach 루프를 사용하여 원래 배열 값 수정
PHP에서 배열, 특히 다차원 배열로 작업할 때 해당 요소에 액세스하고 수정할 수 있습니다. 까다로워지세요. foreach 루프를 사용하여 배열을 반복하고 원래 값을 업데이트할 때 한 가지 일반적인 문제가 발생합니다.
이 경우 양식 필드 정보를 나타내는 $fields 배열을 고려해 보겠습니다.
$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"; } } return $fields; }
문제가 있는 줄은 다음과 같습니다.
$fields[$field]['value'] = "Some error";
여기서 목표는 원래 배열을 업데이트하는 것이지만 배열 키에 액세스하는 방법이 즉시 명확하지 않습니다(이 경우 , "names")를 루프 내에서 사용합니다.
원래 배열에 $key 사용 인덱싱
한 가지 해결책은 foreach 루프 내에서 사용 가능한 $key 변수를 활용하는 것입니다. 반복되는 현재 배열 요소의 키를 나타냅니다.
foreach ($fields as $key => $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$key]['value'] = "Some error"; } }
이 접근 방식은 $field를 사용하여 현재 필드의 값에 액세스하고 $fields[$key]를 사용하여 원래 배열을 조작하므로 효율적인 수정이 가능합니다. 요소의 "값" 키입니다.
위 내용은 PHP에서 foreach 루프를 사용하여 원래 배열 값을 어떻게 수정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!