>백엔드 개발 >PHP 튜토리얼 >PHP에서 다차원 배열을 효율적으로 전치하는 방법은 무엇입니까?

PHP에서 다차원 배열을 효율적으로 전치하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-29 00:35:10831검색

How to Efficiently Transpose Multidimensional Arrays in PHP?

PHP에서 다차원 배열 전치

PHP 영역에서 다차원 배열을 사용하여 작업하려면 원하는 데이터 표현을 얻기 위해 조작이 필요한 경우가 많습니다. 그러한 변환 중 하나는 배열을 바꾸는 것입니다. 즉, 행과 열을 효과적으로 뒤집어서 구조화된 차원으로 새로운 배열을 생성하는 것입니다.

PHP에서 다차원 배열을 바꾸는 방법

The PHP에서 다차원 배열을 전치하는 가장 간단한 방법은 array_unshift()와 call_user_func_array()의 조합을 사용하는 것입니다. 이를 수행하는 방법은 다음과 같습니다.

function transpose($array) {
    array_unshift($array, null);
    return call_user_func_array('array_map', $array);
}

이 함수는 배열 키의 자리 표시자 역할을 하는 null 요소를 배열 시작 부분에 추가하여 작동합니다. 그런 다음 call_user_func_array()는 array_map을 사용하여 단순히 원래 배열의 요소를 반환하는 함수를 매핑하여 새 배열을 만듭니다. 결과는 전치된 배열입니다.

더 일반화된 솔루션

다차원 배열과 관련된 더 복잡한 시나리오의 경우 더 일반화된 솔루션이 필요합니다. 목표는 다음 방정식이 참이 되도록 차원 수에 관계없이 배열을 전치하는 함수를 만드는 것입니다.

$foo[j][k][...][x][y][z] = $bar[z][k][...][x][y][j]

다음은 이를 달성할 수 있는 재귀 함수의 예입니다.

function transposeRecursive($array) {
    if (!is_array($array)) {
        return $array;
    }
    return array_map(function($item) {
        return transposeRecursive($item);
    }, $array[0]) + transposeRecursive(array_slice($array, 1));
}

이 함수는 배열을 반복적으로 처리하여 가장 안쪽 배열에 도달할 때까지 차원을 재귀적으로 바꿉니다. 전치와 배열 슬라이싱을 결합하면 배열을 효과적으로 재구성하여 앞서 언급한 방정식이 성립하도록 보장합니다.

위 내용은 PHP에서 다차원 배열을 효율적으로 전치하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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