Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 정수 인덱스로 연관 배열에 접근하는 방법

PHP의 연관 배열은 문자열 키를 기반으로 동작하기 때문에, 숫자 인덱스처럼 직접 접근할 수 없습니다. 하지만 array_keys() 함수를 활용하면 배열의 키 목록을 추출한 뒤, 이를 정수 인덱스로 순회하면서 각 키와 값에 접근할 수 있습니다.

기본 사용 예제

아래 예제는 array_keys()로 키 배열을 만들고, for 반복문을 통해 인덱스 순서대로 키와 값을 출력합니다.

<?php
    $arr = array( "p"=>"150", "q"=>"100", "r"=>"120", "s"=>"110");
    $keys = array_keys( $arr );
    echo "Array key and value...\n";
    for($x = 0; $x < sizeof($arr); $x++ ) {
        echo "key: ". $keys[$x] . ", value: ". $arr[$keys[$x]] . "\n";
    }
?>

실행 결과

Array key and value...
key: p, value: 150
key: q, value: 100
key: r, value: 120
key: s, value: 110

값 수정까지 포함한 예제

같은 방식으로 특정 인덱스에 해당하는 요소의 값을 변경할 수도 있습니다. 아래 예제에서는 세 번째와 네 번째 요소의 값을 새로 할당한 후, 변경된 배열을 다시 출력합니다.

<?php
    $arr = array( "p"=>"150", "q"=>"100", "r"=>"120", "s"=>"110");
    $keys = array_keys( $arr );
    echo "Array key and value...\n";
    for($x = 0; $x < sizeof($arr); $x++ ) {
        echo "key: ". $keys[$x] . ", value: ". $arr[$keys[$x]] . "\n";
    }
    $arr[$keys[2]] = "20";
    $arr[$keys[3]] = "10";
    echo "\nUpdated Array key and value...\n";
    for($x = 0; $x < sizeof($arr); $x++ ) {
        echo "key: ". $keys[$x] . ", value: ". $arr[$keys[$x]] . "\n";
    }
?>

실행 결과

Array key and value...
key: p, value: 150
key: q, value: 100
key: r, value: 120
key: s, value: 110
Updated Array key and value...
key: p, value: 150
key: q, value: 100
key: r, value: 20
key: s, value: 10

핵심 정리

array_keys()는 연관 배열의 모든 키를 일반 인덱스 배열로 반환합니다. 따라서 이 배열을 정수 인덱스로 순회하면서 원본 배열의 키에 접근하면, 마치 숫자 인덱스 배열을 다루듯 연관 배열을 읽고 쓸 수 있습니다. 배열 전체를 순회하는 경우라면 foreach가 더 간결하지만, 인덱스 기반 제어가 필요한 상황에서는 위 방법이 유용합니다.