php字符串转化成数组如下这段字符串:sex-1-area-2-pagesize-18-pageindex-1 转化成数组 [sex] => 1 [area] => 2 [pagesize] => 18 [pageinde] => 1 我用explode,只能 [0] => sex [1] => 1 [2] => area [3] => 2 这样的 上面的字符串是一个URL传递的参数 分享到: ------解决方案--------------------$s = 'sex-1-area-2-pagesize-18-pageindex-1'; foreach(array_chunk(explode('-', $s), 2) as $v) { $r[$v[0]] = $v[1]; } print_r($r);登录后复制Array ( [sex] => 1 [area] => 2 [pagesize] => 18 [pageindex] => 1 )------解决方案--------------------也可以用正则$s = 'sex-1-area-2-pagesize-18-pageindex-1'; preg_match_all('/(\w+)\-(\w+)/', $s, $r); $r = array_combine($r[1], $r[2]); print_r($r);登录后复制Array ( [sex] => 1 [area] => 2 [pagesize] => 18 [pageindex] => 1 )------解决方案--------------------$test = "sex-1-area-2-pagesize-18-pageindex-1"; $preg = "/(?<=\d)-(?=[a-z])/"; $res = preg_split($preg,$test); foreach($res as $tmp){ list($key,$value) = explode("-",$tmp); echo $key."=>".$value; }登录后复制------解决方案-------------------- $str = 'sex-1-area-2-pagesize-18-pageindex-1'; $str = explode('-', $str); for($i=0,$max=count($str);$i<$max;$i++) { $result[$str[$i]] = $str[++$i]; } print_r($result);登录后复制