php字符串可当数组用,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中的原理相同,但是引用了变量.

标签:php,arrays

来源: https://codeday.me/bug/20191012/1898568.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值