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

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

PHPz
PHPz원래의
2023-04-17 15:16:541187검색

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으로 문의하세요.