>  기사  >  백엔드 개발  >  PHP에서 문자열 인덱스 경로를 사용하여 중첩 배열의 값에 액세스하는 방법은 무엇입니까?

PHP에서 문자열 인덱스 경로를 사용하여 중첩 배열의 값에 액세스하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-25 17:27:05839검색

How to Access Values in Nested Arrays Using a String Index Path in PHP?

문자열 인덱스 경로를 사용하여 중첩 배열의 값에 액세스

PHP에서는 다음을 사용하여 중첩 배열에서 값을 검색해야 하는 상황에 직면합니다. 문자열로 정의된 동적 인덱스 경로. 보안 위험을 초래하는 eval()을 사용하지 않고 이를 달성하려면 다음 접근 방식을 탐색할 수 있습니다.

예제 배열을 고려하세요.

<code class="php">Array
(
    [0] => Array
        (
            ['Data'] => Array
                (
                    ['id'] => 1
                    ['title'] => Manager
                    ['name'] => John Smith
                )
        )
    [1] => Array
        (
            ['Data'] => Array
                 (
                     ['id'] => 1
                     ['title'] => Clerk
                     ['name'] =>
                         (
                             ['first'] => Jane
                             ['last'] => Smith
                         )
                 )

        )

)</code>

Manager 값을 검색하려면 [0]['Data']['name']의 인덱스 경로에서 다음 함수를 사용할 수 있습니다.

<code class="php">function getIndexValue($indexPath, $arrayToAccess)
{
    $paths = explode(":", $indexPath);
    $itens = $arrayToAccess;
    foreach($paths as $ndx){
        $itens = $itens[$ndx];
    }
    return $itens;
}</code>

getIndexValue("[0]['Data']['name'] 호출 ", $myArray)는 Manager를 반환합니다. 마찬가지로 [1]['Data']['name']['first'] 인덱스 경로를 사용하여 Jane의 값을 검색하려면 업데이트된 경로와 동일한 함수를 사용할 수 있습니다.

explod()를 사용하여 경로를 개별 섹션으로 나누고 각 섹션을 기반으로 배열을 반복적으로 탐색함으로써 eval()을 사용하지 않고도 값에 효과적으로 액세스하여 안전하고 유연한 접근 방식을 유지할 수 있습니다.

위 내용은 PHP에서 문자열 인덱스 경로를 사용하여 중첩 배열의 값에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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