ホームページ >バックエンド開発 >PHPチュートリアル >PHP でドット構文文字列を多次元配列に効率的に変換するにはどうすればよいですか?

PHP でドット構文文字列を多次元配列に効率的に変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-01 16:01:11414ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。