3

可能重复:
具有数组结构的字符串到数组

我在工作中有严格的禁止 eval() 政策,而且我很难在没有 eval() 的情况下编写此代码。

该解决方案需要使用其中包含任意数量的句点的 $location var。

如果没有 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