質問:
「」などのドット構文文字列はどのように変換できますか? 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 サイトの他の関連記事を参照してください。