>백엔드 개발 >PHP 문제 >PHP에서 키 이름의 2차원 배열을 전치하는 방법

PHP에서 키 이름의 2차원 배열을 전치하는 방법

PHPz
PHPz원래의
2023-04-23 10:10:34594검색

PHP 프로그래밍에서는 배열을 자주 사용하며, 배열에 대한 연산도 많습니다. 가장 흥미로운 작업 중 하나는 2차원 배열의 키 전치입니다.

소위 2차원 배열은 배열의 각 요소가 배열이라는 의미입니다. 키 이름 전치는 2차원 배열의 각 요소에 대한 키 이름을 배열 첨자로 변경하는 동시에 2차원 배열의 각 요소에 해당하는 배열을 전치하는 것을 의미합니다.

이 글에서는 PHP를 사용하여 2차원 배열에 대한 키 이름 전치 연산을 구현하는 방법을 설명합니다.

1. 2차원 배열 만들기

설명을 시작하기 전에 먼저 2차원 배열을 만들어야 합니다. 다음 코드를 사용할 수 있습니다.

$originArr = array(
    'fruit1' => array('name' => 'apple', 'color' => 'red'),
    'fruit2' => array('name' => 'banana', 'color' => 'yellow'),
    'fruit3' => array('name' => 'orange', 'color' => 'orange')
);

이 2차원 배열에서 각 요소는 과일의 이름과 색상을 포함하는 연관 배열입니다. 이제 키 이름을 바꿔야 합니다.

2. array_column 함수를 사용하여 2차원 배열을 전치하세요.

PHP에서는 다차원 배열에서 특정 열을 추출하는 데 사용할 수 있는 array_column이라는 함수를 제공합니다. 이 글에서는 이 함수를 사용하여 키 이름 전치를 구현해 보겠습니다.

먼저 2차원 배열에 있는 모든 키 이름을 추출하여 1차원 배열로 변환해야 합니다. 모든 키 이름을 추출하려면 array_keys 함수를 사용하고, 모든 값을 추출하려면 array_values ​​​​함수를 사용하세요. array_keys 함수가 반환한 배열을 array_column 함수의 두 번째 매개변수로 전달하기만 하면 됩니다.

코드는 다음과 같이 구현됩니다.

$keys = array_keys($originArr);
$newArr = array_column($originArr, null, $keys);

이 단계에서는 2차원 배열에 있는 각 요소의 키 이름을 새 배열의 첨자로 사용합니다. 원래 배열의 각 요소에 해당하는 배열이 새 배열의 값이 됩니다.

3. 하위 배열의 키 이름을 바꿉니다

현재 새 배열에서는 키 이름이 바뀐 경우에도 새 배열의 각 값도 배열이고 각 배열의 키 이름은 배열이 아닙니다. 아래첨자가 필요합니다. 따라서 새 배열의 각 하위 배열의 키 이름도 바꿔야 합니다.

array_map 함수를 사용하면 newArr 배열의 각 하위 배열에 콜백 함수를 적용하여 키 이름을 바꿀 수 있습니다. 코드는 다음과 같이 구현됩니다.

$newArr = array_map(function($arr){ 
    return array_combine(array_keys($arr), $arr);
}, $newArr);

여기에서는 먼저 array_keys 함수를 사용하여 배열의 현재 키 이름을 추출한 다음 추출된 키 이름과 현재 값을 결합하여 array_combine 함수를 통해 새로운 연관 배열을 형성합니다. 이러한 방식으로 새 배열의 각 하위 배열의 키 이름을 성공적으로 바 꾸었습니다.

4. 전체 코드 구현

위 단계를 통해 주어진 2차원 배열에 대해 키 이름 전치 연산을 구현할 수 있습니다. 다음은 전체 코드 구현입니다.

$originArr = array(
    'fruit1' => array('name' => 'apple', 'color' => 'red'),
    'fruit2' => array('name' => 'banana', 'color' => 'yellow'),
    'fruit3' => array('name' => 'orange', 'color' => 'orange')
);

$keys = array_keys($originArr);
$newArr = array_column($originArr, null, $keys);

$newArr = array_map(function($arr){ 
    return array_combine(array_keys($arr), $arr);
}, $newArr);

print_r($newArr);

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

Array
(
    [name] => Array
        (
            [fruit1] => apple
            [fruit2] => banana
            [fruit3] => orange
        )

    [color] => Array
        (
            [fruit1] => red
            [fruit2] => yellow
            [fruit3] => orange
        )

)

보시다시피 2차원 배열의 각 요소의 키 이름을 새 배열의 첨자로 성공적으로 바꾸었습니다. 동시에 하위 배열에서 각 키 이름도 새 인덱스로 바뀐다.

요약

이 글에서는 PHP의 2차원 배열에 대한 키 이름 전치 연산에 대해 이야기하고, array_column 및 array_map 함수를 사용하여 이 연산을 구현하는 방법을 소개했습니다. 다차원 배열을 작업해야 하는 경우 이 작업을 통해 코드 양을 절약하고 개발 효율성을 높일 수 있습니다.

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

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