首頁  >  文章  >  後端開發  >  php字符串转化成数组

php字符串转化成数组

WBOY
WBOY原創
2016-06-23 14:16:52921瀏覽

如下这段字符串: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;	}

<?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);

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn