如下这段字符串: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);
也可以用正则
$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);
$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; }
<?php$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);