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

PHP 연관 배열에서 숫자 인덱스를 가져오는 방법

PHP에서 연관 배열(associative array)은 문자열 키를 사용하기 때문에 일반적인 숫자 인덱스처럼 접근하기 어렵습니다. 하지만 array_keys() 함수를 활용하면 각 요소의 키를 별도의 인덱스 배열로 추출할 수 있고, 이를 통해 반복문 안에서 숫자 인덱스를 사용하듯 키와 값을 모두 다룰 수 있습니다.

기본 예제

다음은 array_keys() 함수로 연관 배열의 키 목록을 가져온 뒤, for 반복문을 사용해 키와 값을 출력하는 기본적인 코드입니다.

<?php
   $arr = array( "a"=>"5", "b"=>"20", "c"=>"35", "d"=>"55");
   $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: a, value: 5
key: b, value: 20
key: c, value: 35
key: d, value: 55

배열 값 수정하기

이번에는 숫자 인덱스를 활용해 특정 위치의 값을 변경하는 예제를 살펴보겠습니다. $keys[3]으로 네 번째 키('s')에 접근한 후 해당 값을 새로 할당하면, 원본 배열의 값이 업데이트됩니다.

<?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[3]] = "25";
   echo "\nUpdated Array key and value...\n";
   for($x = 0; $x < sizeof($arr); $x++ ) {
      echo "key: ". $keys[$x] . ", value: ". $arr[$keys[$x]] . "\n";
   }
?>

출력 결과

실행 결과는 다음과 같습니다. 마지막 요소의 값이 110에서 25로 변경된 것을 확인할 수 있습니다.

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: 120
key: s, value: 25

정리

연관 배열에 숫자 인덱스처럼 접근해야 할 때는 array_keys() 함수로 키 배열을 먼저 만들어 두는 것이 핵심입니다. 이렇게 하면 for 반복문과 인덱스 연산을 자유롭게 사용할 수 있어, 특정 위치의 값을 읽거나 수정하는 작업이 훨씬 간편해집니다. 참고로 단순히 전체 요소를 순회하는 것이 목적이라면 foreach 문이 더 직관적일 수 있으니 상황에 맞게 선택하는 것이 좋습니다.