>백엔드 개발 >PHP 튜토리얼 >PHP에서 도트 구문 문자열을 다차원 배열로 효율적으로 변환하는 방법은 무엇입니까?

PHP에서 도트 구문 문자열을 다차원 배열로 효율적으로 변환하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-01 16:01:11415검색

How to Efficiently Convert Dot Syntax Strings to Multidimensional Arrays in PHP?

PHP에서 도트 구문 문자열을 다차원 배열로 변환

질문:

"와 같은 도트 구문 문자열을 어떻게 사용할 수 있나요? this.that.other"를 다차원 배열로 효율적으로 변환할 수 있습니다. PHP?

답변:

매우 효과적인 솔루션은 아래와 같은 재귀 함수를 활용하는 것입니다.

function assignArrayByPath(&$arr, $path, $value, $separator='.') {
    $keys = explode($separator, $path);

    foreach ($keys as $key) {
        $arr = &$arr[$key];
    }

    $arr = $value;
}

이 함수는 반복적으로 순회합니다. '.'를 사용하는 배열 구분 기호로 원하는 속성에 도달하고 해당 값을 설정할 때까지 도중에 누락된 키를 생성합니다.

예를 들어 다음 샘플 문자열을 사용하면 "s1.t1.column.1 = size:33 %", 함수는 다음과 같은 배열 구조를 생성합니다:

$source = [];
assignArrayByPath($source, 's1.t1.column.1', 'size:33%');

print_r($source); // Outputs: ['s1' => ['t1' => ['column' => ['1' => 'size:33%']]]]

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

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