>백엔드 개발 >PHP 튜토리얼 >PHP에서 foreach 루프를 사용하여 원래 배열 값을 어떻게 수정할 수 있습니까?

PHP에서 foreach 루프를 사용하여 원래 배열 값을 어떻게 수정할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-22 20:40:19922검색

How Can I Modify Original Array Values Using a foreach Loop in PHP?

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.