可以参考如下代码:
$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,测试结果如下:
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即可
$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
)