php字符串转化成数组

DedtiNyHua 2013-07-25 10:40:02
如下这段字符串: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传递的参数
...全文
88 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lazyboy_wu 2013-07-25
  • 打赏
  • 举报
回复
<?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);
ohmygirl 2013-07-25
  • 打赏
  • 举报
回复
$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;
	}
xuzuning 2013-07-25
  • 打赏
  • 举报
回复
也可以用正则
$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 )
xuzuning 2013-07-25
  • 打赏
  • 举报
回复
$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 )

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧