3

重複の可能性:
配列構造を持つ文字列から配列へ

私の職場では厳格な no eval() ポリシーがあり、eval() なしでこのコードを書くのに苦労しています。

ソリューションは、任意の数のピリオドを持つ $location 変数で動作する必要があります。

eval() なしでこれを行う方法

<?php 

$location = 'details.name.first';
$value = 'Tyler';

$data = array();
$data['details']['name']['first'] = 'Kevin';
$data['details']['name']['last'] = 'Jensen';
$data['details']['phone'] = '(434) 453-5331';

$parts = explode('.', $location);

$command = '$data';
foreach($parts as $part) {
    $command .= '["'.$part.'"]';
}
eval($command.' = $value;');


print_r($data);
4

0 に答える 0