PHP で文字列インデックス パスを使用して入れ子になった配列の値にアクセスする方法

Barbara Streisand
リリース: 2024-10-25 17:27:05
オリジナル
838 人が閲覧しました

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>
ログイン後にコピー

Calling getIndexValue("[0]['Data']['name'] ", $myArray) は Manager を返します。同様に、[1]['Data']['name']['first'] のインデックス パスを使用して Jane の値を取得するには、更新されたパスで同じ関数を使用できます。

explode()を使用してパスを個々のセクションに分割し、各セクションに基づいて配列を反復的に移動することで、eval()を使用せずに効果的に値にアクセスでき、安全で柔軟なアプローチを維持できます。

以上がPHP で文字列インデックス パスを使用して入れ子になった配列の値にアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!