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

PHP에서 배열 요소의 키를 재설정하는 방법 – array_values() 완벽 가이드

PHP에서 연관 배열을 다루다 보면 문자열 키나 불연속적인 숫자 키를 0부터 시작하는 연속된 인덱스로 재설정해야 하는 경우가 자주 발생합니다. 이럴 때 가장 간단하고 효율적으로 사용할 수 있는 함수가 바로 array_values()입니다.

array_values()는 배열의 모든 값을 반환하면서, 기존의 키는 버리고 새로운 숫자 인덱스(0부터 시작)를 자동으로 부여합니다. 원본 배열은 그대로 유지되며, 결과는 새로운 배열로 반환됩니다.

예제 1: 문자열 키 재설정하기

다음은 문자열 키를 가진 배열의 키를 재설정하는 예제입니다.

<?php
   $arr = array( "p"=>"150", "q"=>"100", "r"=>"120", "s"=>"110");
   var_dump ($arr);
   $res = array_values($arr);
   var_dump ($res);
?>

출력 결과

위 코드를 실행하면 아래와 같은 결과가 출력됩니다.

array(4) {
   ["p"]=>
   string(3) "150"
   ["q"]=>
   string(3) "100"
   ["r"]=>
   string(3) "120"
   ["s"]=>
   string(3) "110"
}
array(4) {
   [0]=>
   string(3) "150"
   [1]=>
   string(3) "100"
   [2]=>
   string(3) "120"
   [3]=>
   string(3) "110"
}

출력 결과를 보면, 원본 배열 $arr"p", "q", "r", "s"라는 문자열 키를 그대로 유지하고 있지만, array_values()를 통해 생성된 $res 배열은 0, 1, 2, 3이라는 연속된 숫자 인덱스로 키가 재설정된 것을 확인할 수 있습니다.

예제 2: 불연속 숫자 키 재설정하기

array_values()는 숫자 키가 불연속적일 때도 유용하게 사용됩니다. 이번에는 임의의 숫자 키를 가진 배열을 살펴보겠습니다.

<?php
   $arr = array( 8=>"Ben", 4=>"Kevin", 7=>"Mark", 3=>"Hanks");
   var_dump ($arr);
   $res = array_values($arr);
   var_dump ($res);
?>

출력 결과

실행 결과는 다음과 같습니다.

array(4) {
   [8]=>
   string(3) "Ben"
   [4]=>
   string(5) "Kevin"
   [7]=>
   string(4) "Mark"
   [3]=>
   string(5) "Hanks"
}
array(4) {
   [0]=>
   string(3) "Ben"
   [1]=>
   string(5) "Kevin"
   [2]=>
   string(4) "Mark"
   [3]=>
   string(5) "Hanks"
}

원본 배열은 8, 4, 7, 3처럼 중간에 비어 있는 불규칙한 키를 가지고 있었지만, array_values() 적용 후에는 값의 순서를 유지한 채 0부터 3까지 깔끔하게 정렬된 인덱스로 변환되었습니다.

정리

  • array_values()는 배열의 값만 추출하여 0부터 시작하는 연속된 숫자 키로 재구성한 새 배열을 반환합니다.
  • 문자열 키든, 불연속적인 숫자 키든 상관없이 일괄적으로 인덱스를 재설정할 수 있습니다.
  • 원본 배열은 변경되지 않으므로 안전하게 사용할 수 있습니다.

배열 요소를 삭제한 후 인덱스에 빈틈이 생겼을 때, 또는 연관 배열을 일반 인덱스 배열로 변환하고 싶을 때 array_values()를 활용해 보세요.