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

2025-05-13 10:14:30
推荐回答(3个)
回答(1):

可以参考如下代码:

$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,测试结果如下:

回答(2):

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即可

回答(3):

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