热搜:NVER node 开发 php

php字符串转化成数组

2024-09-19 09:25:01
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;	}

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