php如何将字符串转换成二维联合数组

$str="6009=2&6008=1&6007=2&6006=1&6005=1&";$arr=explode('&',$str);$all_arr=array();fo... $str="6009=2&6008=1&6007=2&6006=1&6005=1&";
$arr = explode('&' , $str);
$all_arr = array();

foreach($arr as $v){$all_arr[] = explode('=' , $v); }
print_r($all_arr);
出来的数组是带数字下标的,不是我要的数组我要如何做才能转化成联合数组
说明:字符串=左边是id,右边是数量
展开
 我来答
九头草鸡
2015-08-11 · TA获得超过239个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:172万
展开全部

可以参考如下代码:

<?php
$str="6009=2&6008=1&6007=2&6006=1&6005=1&";
$arr1 = explode('&', $str, -1);
$arr2 = array();
foreach($arr1 as $item) {
    list($key, $value) = explode('=', $item);
    $arr2[$key] = $value;
}
print_r($arr2);

我的 PHP 版本是5.5,测试结果如下:

匿名用户
2015-08-11
展开全部

php里面没有  联合数组 这一说法  你可以举例说明一下

如果你是想把url里的参数解析到数组可以直接用 parse_str 

不用这么复杂  用内置函数即可  建议好好看看文档

parse_str('id=123&title=标题&type=news&content=内容',$parameters);
print_r($parameters);

Array
(
    [id] => 123
    [title] => 标题
    [type] => news
    [content] => 内容
)

如果是一个完整的url可以用 parse_url

print_r(parse_url('http:// zhidao.baidu.com:88/?id=123&title=标题&type=news&content=内容'));

Array
(
    [scheme] => http
    [host] => zhidao.baidu.com
    [port] => 88
    [path] => /
    [query] => id=123&title=标题&type=news&content=内容
)

 然后对 query使用 parse_str即可

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
amwih001
2015-08-11 · TA获得超过2.3万个赞
知道大有可为答主
回答量:1529
采纳率:100%
帮助的人:677万
展开全部
$str = "6009=2&6008=1&6007=2&6006=1&6005=1&";
$arr = explode ( '&', $str );
$all_arr = array ();

foreach ( $arr as $v ) {
if(empty($v)){
continue;
}
$itemarr = explode ( '=', $v );
if(count($itemarr) != 2){
continue;
}
$all_arr [$itemarr[0]] = $itemarr[1];
}
 print_r($all_arr);



打印结果


Array
(
   [6009] => 2
   [6008] => 1
   [6007] => 2
   [6006] => 1
   [6005] => 1
)

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式