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);