Php 将数组格式的字符串转换为数组
我有一个以下格式的字符串Php 将数组格式的字符串转换为数组,php,Php,我有一个以下格式的字符串 abc.something=1&bcd.something=2&efg.something=3&arr%5B0%5D.something.something=something&arr%5B0%5D.something.something=something&arr%5B0%5D.something.something=something 当我使用parse_str这一个时,除了数组之外的所有键值都可用,并且将数组作为数组获取,
abc.something=1&bcd.something=2&efg.something=3&arr%5B0%5D.something.something=something&arr%5B0%5D.something.something=something&arr%5B0%5D.something.something=something
当我使用parse_str这一个时,除了数组之外的所有键值都可用,并且将数组作为数组获取,但第一个键和最后一个值除外
预期结果:
'abc_something' => '1'
'bcd_something' => '2'
'efg_something' => '3'
到目前为止,我们已经收到了。休息,我想如下,现在我得到
0 => 'lastvalue
只有
在应用urldecode()之后,即使我使用parse\u str
也会发生同样的情况
$str = 'abc.something=1&bcd.something=2&efg.something=3&arr%5B0%5D.something.something=something&arr%5B0%5D.something.something=something&arr%5B0%5D.something.something=something';
$str= urldecode($str);
parse_str($str, $arr);
谁在get中传递数组数据?这是不推荐的,我可以说get不是为了这个目的而存在的。改为使用post。@Drakula这是第三方的响应。使用arr[0]是无效的。something.something=something
,这就是为什么它被转换为arr[0]=something
。也许您正在寻找arr[0][something][something]=something
。请注意,abc.something
是单键的,它不是数组构造,HTTP不接受JS对象notation@Justinas我如何才能像你说的那样转换它?@NitheesramRajes你是如何制作这个字符串的?谁在get中传递数组数据?这是不推荐的,我可以说get不是为了这个目的而存在的。改为使用post。@Drakula这是第三方的响应。使用arr[0]是无效的。something.something=something
,这就是为什么它被转换为arr[0]=something
。也许您正在寻找arr[0][something][something]=something
。请注意,abc.something
是单键的,它不是数组构造,HTTP不接受JS对象notation@Justinas我怎样才能像你说的那样转换它?@NitheesramRajes你怎么做这个字符串的?
$str = 'abc.something=1&bcd.something=2&efg.something=3&arr%5B0%5D.something.something=something&arr%5B0%5D.something.something=something&arr%5B0%5D.something.something=something';
$str= urldecode($str);
parse_str($str, $arr);