백엔드 개발 PHP 문제 PHP 배열의 키 값을 변환하는 방법

PHP 배열의 키 값을 변환하는 방법

Apr 17, 2023 pm 03:16 PM

PHP는 강력한 배열 처리 기능을 제공하는 객체 지향 프로그래밍 언어입니다. 실제 개발에서는 배열을 조정해야 하는 상황에 자주 직면합니다. 일반적인 요구 사항 중 하나는 배열의 키를 변환하는 것입니다. 이 글에서는 PHP 배열에서 키를 변환하는 방법을 소개하고, 그 과정에서 주의해야 할 사항을 독자들에게 자세히 설명합니다.

1. array_combine() 함수를 사용하세요

array_combine() 함수는 두 배열을 병합하고 새 배열을 생성하는 데 사용되는 PHP 함수입니다. 사용법은 다음과 같습니다:

array_combine(array $keys, array $values) : array

이 함수의 첫 번째 매개변수 $keys는 두 번째 매개변수 $values의 키 이름을 나타내는 배열입니다. ​또한 새 배열의 키 값을 나타내는 배열입니다. 요소 수는 동일해야 하며, 그렇지 않으면 false가 반환됩니다.

$keys 및 $values ​​배열의 요소 순서는 일대일로 일치해야 합니다. 예를 들어 $keys 배열의 첫 번째 요소는 $values ​​배열의 첫 번째 요소에 해당합니다.

다음은 첨자로 숫자가 있는 $name 배열을 첨자로 문자열이 있는 $new_name 배열로 변환하는 예입니다.

$name = array('0' => 'Alice', '1' => 'Bob', '2' => 'Carol');
$new_name = array_combine(array('a', 'b', 'c'), $name);
print_r($new_name);
로그인 후 복사

출력 결과는 다음과 같습니다.

Array
(
    [a] => Alice
    [b] => Bob
    [c] => Carol
)
로그인 후 복사

이 예에서 $name 배열은 숫자 첨자는 문자열 첨자로 변환되고 배열의 값은 변경되지 않습니다. 이는 array_combine() 함수를 사용하고 새 키 이름을 지정했기 때문입니다.

2. array_flip() 함수를 사용하세요

array_flip() 함수는 배열의 키와 값을 교환하는 데 사용되는 PHP 함수입니다. 사용법은 다음과 같습니다.

array_flip(array $trans) : array

이 함수의 $trans 매개변수는 교환된 배열을 나타내는 배열입니다. 원래 배열의 키가 새 배열의 값이 되고, 원래 배열의 값이 새 배열의 키가 되는 새 배열을 반환합니다.

다음은 아래 첨자로 숫자가 있는 $age 배열을 아래 첨자로 age 값이 있는 $info 배열로 변환하는 예입니다.

$age = array('Alice' => 25, 'Bob' => 35, 'Carol' => 30);
$info = array_flip($age);
print_r($info);
로그인 후 복사

출력 결과는 다음과 같습니다.

Array
(
    [25] => Alice
    [35] => Bob
    [30] => Carol
)
로그인 후 복사

이 예에서 $age는 배열 문자열 첨자는 숫자 첨자로 변환되지만 배열의 값은 변경되지 않습니다. 이는 array_flip() 함수를 사용하여 $age 배열을 전달했기 때문입니다.

원래 배열에 중복된 값이 있는 경우 변환된 키가 이전 키를 덮어쓰게 된다는 점에 유의해야 합니다. 따라서 array_flip() 함수를 사용할 때에는 원래 배열의 값이 고유한지 확인해야 합니다.

3. array_map() 함수를 사용하세요

array_map() 함수는 배열의 각 요소에 콜백 함수를 적용하는 데 사용되는 PHP 함수입니다. 사용법은 다음과 같습니다.

array_map(callable $callback, array ...$arrays) : array

이 함수의 첫 번째 매개변수인 $callback은 배열의 각 요소에 적용되는 콜백 함수입니다. 두 번째 매개변수 다음의 배열이 연산이 필요한 배열입니다. 요소 수는 동일하지 않을 수 있습니다. 이 함수는 각 요소가 $callback 함수의 반환 값인 새 배열을 생성합니다.

다음은 숫자 첨자가 있는 $price 배열을 부동 소수점 첨자가 있는 $actual_price 배열로 변환하는 예입니다.

$price = array('Alice' => 10, 'Bob' => 15.5, 'Carol' => 20);
$actual_price = array_map(function($p) { return round($p * 0.8, 2); }, $price);
print_r($actual_price);
로그인 후 복사

출력은 다음과 같습니다.

Array
(
    [Alice] => 8.00
    [Bob] => 12.40
    [Carol] => 16.00
)
로그인 후 복사

이 예에서는 array_map( ) 함수를 사용하고 전달합니다. 콜백 함수. 이 함수는 각 가격 값에 0.8을 곱하고 소수점 이하 두 자리로 반올림한 후 새 가격 값을 반환합니다. 마지막으로, 아래 첨자가 사람의 이름이 되고 배열의 값이 계산된 실제 가격인 새 배열 $actual_price를 얻습니다.

$callback 함수는 값을 반환해야 하며 그렇지 않으면 경고가 생성된다는 점에 유의해야 합니다.

4. foreach 루프 사용

위 기능 외에도 foreach 루프를 사용하여 배열의 키를 수동으로 변환할 수도 있습니다. 다음은 숫자 첨자가 있는 $id 배열을 문자열 첨자가 있는 $name_id 배열로 변환하는 예입니다.

$id = array(1001, 1002, 1003);
$name = array('Alice', 'Bob', 'Carol');
$name_id = array();
foreach($id as $i => $val) {
    $name_id[$name[$i]] = $val;
}
print_r($name_id);
로그인 후 복사

출력 결과는 다음과 같습니다.

Array
(
    [Alice] => 1001
    [Bob] => 1002
    [Carol] => 1003
)
로그인 후 복사

이 예에서는 foreach 루프를 사용하며 배열은 다음과 같습니다. 루프 내에서 변환되었습니다. 특히 $id 배열의 각 요소를 반복하고 요소의 첨자를 사용하여 $name 배열에서 해당 값을 검색합니다. 그런 다음 이 새로운 키-값 쌍을 $name_id 배열에 추가합니다.

foreach 루프를 사용할 때 배열의 요소를 수정하려면 배열에 대한 참조를 사용해야 한다는 점에 유의해야 합니다.

5. 요약

이 기사에서는 array_combine() 함수, array_flip() 함수, array_map() 함수 및 foreach 루프를 사용하는 메서드를 포함하여 PHP 배열에서 키를 변환하는 방법을 소개합니다. 이러한 방법은 각각 서로 다른 특성을 갖고 있으며 실제 필요에 따라 다양한 방법을 선택할 수 있습니다.

이러한 방법을 사용할 때 새 키 이름은 고유해야 하며 방법에 따라 결과가 달라질 수 있다는 점에 유의하세요. 따라서 배열의 키를 변환할 때는 신중하게 생각하고 적절한 방법을 선택해야 합니다.

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

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)