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 중국어 웹사이트의 기타 관련 기사를 참조하세요!