> 백엔드 개발 > PHP 문제 > PHP 배열에서 키 이름을 일괄 변경하는 방법

PHP 배열에서 키 이름을 일괄 변경하는 방법

PHPz
풀어 주다: 2023-04-19 10:34:58
원래의
623명이 탐색했습니다.

PHP에서 배열은 여러 값을 저장하고 처리할 수 있는 매우 실용적인 데이터 구조입니다. 하지만 실제 개발에서는 배열의 키 이름을 일괄 수정해야 하는 경우가 많습니다. 이 경우 배열 관련 기능을 사용하여 완료해야 합니다.

아래에서는 PHP에서 배열 키 이름을 일괄 수정하는 방법을 자세히 소개하겠습니다. 구체적으로 다음 함수를 사용합니다:

  1. array_combine(): 한 배열의 값을 새 배열의 키로 사용하고 다른 배열의 값을 새 배열의 값으로 사용합니다.
  2. array_keys() : 배열의 모든 키를 반환합니다. 키 이름;
  3. array_values(): 배열의 모든 값을 반환합니다.
  4. array_map(): 지정된 함수를 각 배열 요소에 적용하고 새 배열을 반환합니다. (): 배열의 각 요소에 적용됩니다. 요소에는 사용자 정의 함수가 적용됩니다.
  5. 이제 여러 요소를 포함하는 $arr 배열이 있고 각 요소에는 숫자 키 이름이 있다고 가정합니다. "0"을 "apple"로 바꾸거나 "1"을 "banana"로 바꾸는 등 문자열 키 이름으로 변환하려고 합니다. 그래서 뭐 할까? 아래 코드를 보세요:
$arr = array('apple', 'banana', 'orange', 'peach', 'lemon');
$key_names = array('apple', 'banana', 'orange', 'peach', 'lemon');
$new_arr = array_combine($key_names, $arr);
print_r($new_arr);
로그인 후 복사

이 코드에서는 먼저 동일한 수의 요소를 갖는 $arr 배열과 $key_names 배열을 정의합니다. 다음으로, array_combine() 함수를 사용하여 $arr 배열의 값을 새 배열의 값으로 사용하고 $key_names 배열의 값을 새 배열의 키로 사용합니다. 마지막으로 print_r() 함수를 통해 새 배열 $new_arr의 내용을 인쇄하면 원하는 결과를 볼 수 있습니다.

Array
(
    [apple] => apple
    [banana] => banana
    [orange] => orange
    [peach] => peach
    [lemon] => lemon
)
로그인 후 복사

이런 식으로 키 이름을 숫자에서 문자열로 성공적으로 변환했습니다. 그러나 어떤 경우에는 우리의 요구 사항이 더 복잡할 수도 있습니다. 예를 들어 모든 키 이름을 대문자에서 소문자로 변환해야 합니다. 이때 array_keys() 및 array_map() 함수를 사용하여 이를 달성할 수 있습니다. 코드는 다음과 같습니다:

$arr = array(
    'Apple' => 'red',
    'Banana' => 'yellow',
    'Orange' => 'orange',
    'Peach' => 'pink',
    'Lemon' => 'yellow'
);

$lowercase_keys = array_map('strtolower', array_keys($arr));
$new_arr = array_combine($lowercase_keys, array_values($arr));

print_r($new_arr);
로그인 후 복사

이 코드에서는 먼저 $arr 배열을 정의하고 해당 키 이름의 첫 글자를 대문자로 표시합니다. 다음으로 array_keys() 함수를 사용하여 $arr 배열의 모든 키를 반환합니다. 그런 다음 array_map() 함수를 사용하여 strtolower() 함수를 각 키 이름에 적용하고 모두 소문자로 변환합니다. 마지막으로 array_combine() 함수를 사용하여 새 키 이름과 $arr 배열의 값을 결합하여 새 배열 $new_arr을 만듭니다. print_r() 함수를 사용하여 새 배열 $new_arr의 내용을 인쇄하면 수정된 결과를 볼 수 있습니다.

Array
(
    [apple] => red
    [banana] => yellow
    [orange] => orange
    [peach] => pink
    [lemon] => yellow
)
로그인 후 복사

이 방법으로 모든 키 이름을 소문자로 성공적으로 변환했습니다. array_combine() 함수를 사용할 때, 새로운 배열의 키 이름과 값의 개수가 동일한지 확인하세요. 그렇지 않으면 오류가 발생합니다. 여기서는 array_values() 함수를 사용하여 $arr 배열의 모든 값을 가져와 해당 값이 $lowercase_keys 배열의 수와 동일한지 확인합니다.

물론 위의 방법은 단지 시연용일 뿐입니다. 실제 사용에서는 특정 상황에 따라 적절한 기능과 방법을 선택해야 합니다.

위에 소개된 방법 외에도 array_walk() 함수를 사용하는 보다 유연한 방법도 있습니다. 이 함수는 배열의 각 요소에 대해 작동하도록 콜백 함수를 사용자 정의할 수 있으므로 보다 다양한 요구를 충족할 수 있습니다.

아래에서는 배열의 모든 키 이름에 "fruit_" 접두사를 추가하는 간단한 예를 구현합니다. 코드는 다음과 같습니다.

$arr = array(
    'apple' => 'red',
    'banana' => 'yellow',
    'orange' => 'orange',
    'peach' => 'pink',
    'lemon' => 'yellow'
);

function add_prefix(&$value, $key, $prefix) {
    $value = $prefix . '_' . $key;
}

array_walk($arr, 'add_prefix', 'fruit');
print_r($arr);
로그인 후 복사

이 코드에서는 먼저 $arr 배열을 정의하고 add_prefix()를 정의합니다. 기능. add_prefix() 함수에는 연산할 값, 현재 값의 키 이름, 지정된 접두사 등 세 가지 매개 변수가 있습니다. 함수 내에서 키 이름과 현재 값의 접두사를 연결하여 새 키 이름을 생성하고 이를 현재 값의 키 이름에 할당합니다. 그런 다음 array_walk() 함수를 사용하여 $arr 배열의 각 요소에 add_prefix() 함수를 적용하고 마지막으로 수정된 배열을 인쇄합니다.

Array
(
    [fruit_apple] => red
    [fruit_banana] => yellow
    [fruit_orange] => orange
    [fruit_peach] => pink
    [fruit_lemon] => yellow
)
로그인 후 복사

이렇게 하면 배열을 일괄 수정하는 작업을 성공적으로 구현했습니다. 키 이름. 일반적으로 PHP에는 배열에서 작동할 수 있는 내장 함수가 많이 있으며 실제 필요에 따라 가장 적절한 방법을 선택할 수 있습니다.

위 내용은 PHP 배열에서 키 이름을 일괄 변경하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿