微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php字符串调用数组

我有一个包含数组元素的字符串.

$str = '[some][string]';
$array = array();

如何使用$str获得$array [‘some’] [‘string’]的值?

解决方法:

您可以使用eval进行操作,不知道您是否满意:

$array['some']['string'] = 'test';    
$str = '[some][string]';    
$code = sprintf('return $array%s;', str_replace(array('[',']'), array('[\'', '\']'), $str));    
$value = eval($code);    
echo $value; # test

但是eval并不总是正确的工具,因为它很好,它经常显示出在需要使用它时存在设计缺陷.

一个示例,如果您需要对数组项进行写访问,则可以执行以下操作:

$array['some']['string'] = 'test';
$str = '[some][string]';
$path = explode('][', substr($str, 1, -1));
$value = &$array;
foreach($path as $segment)
{
    $value = &$value[$segment];
}

echo $value;
$value = 'changed';
print_r($array);

实际上,这与Eric’s answer中的原理相同,但是引用了变量.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐