>  기사  >  백엔드 개발  >  PHP에서 점 표기법 키를 사용하여 다차원 배열을 2D 배열로 변환하는 방법은 무엇입니까?

PHP에서 점 표기법 키를 사용하여 다차원 배열을 2D 배열로 변환하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-01 12:03:02252검색

How to Convert Multidimensional Arrays to 2D Arrays with Dot Notation Keys in PHP?

PHP에서 점 표기법 키를 사용하여 다차원 배열을 2D 배열로 변환

PHP의 배열 구조에서는 점 표기법을 사용할 수 있습니다. 중첩된 배열 요소에 액세스하는 편리한 방법입니다. 그러나 점 표기법 키를 사용하여 다차원 배열을 2D 배열로 변환해야 하는 시나리오가 있습니다.

문제:

주어진 다차원 배열의 목표는 다음과 같습니다. 각 요소에 원래 배열 구조 내의 경로를 나타내는 점으로 표기된 키가 할당된 2D 배열로 변환합니다.

해결책:

RecursiveIteratorIterator 및 RecursiveArrayIterator 활용 클래스를 사용하면 다차원 배열을 재귀적으로 탐색할 수 있습니다. 순회하는 동안 반복 깊이에 따라 키가 누적됩니다. 그런 다음 배열의 리프 값이 구성된 점 표기 키에 할당되어 원하는 2D 배열이 생성됩니다.

코드:

<code class="php">$ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray));
$result = array();
foreach ($ritit as $leafValue) {
    $keys = array();
    foreach (range(0, $ritit->getDepth()) as $depth) {
        $keys[] = $ritit->getSubIterator($depth)->key();
    }
    $result[ join('.', $keys) ] = $leafValue;
}</code>

출력:

Array
(
    [key1] => value1
    [key2.subkey] => subkeyval
    [key3] => value3
    [key4.subkey4.subsubkey4] => subsubkeyval4
    [key4.subkey4.subsubkey5] => subsubkeyval5
    [key4.subkey5] => subkeyval5
)

반복자 클래스의 재귀적 특성과 순회 중 점 표기 키 구성을 활용하여 이 코드 조각은 점 표기 키를 사용하여 다차원 배열을 2D 배열로 효과적으로 변환합니다.

위 내용은 PHP에서 점 표기법 키를 사용하여 다차원 배열을 2D 배열로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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