求助字符串转换数组 $str = 'pingpai,112,113,115,jijie,3,7';$params = array( 'pingpai'=>array('0'=>'112','1'=>'113','2'=>'115'), 'jijie'=>array('0'=>'3','1'=>'7'))求将上述$str形式的字符串转换为$params形式的数组 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $str = 'pingpai,112,113,115,jijie,3,7';$str = substr(preg_replace('/([a-z]+),/i', '),"\\1" =>array(', "$str,)"), 2);$arr = eval("return array($str);");var_dump($arr);/**array(2) { ["pingpai"]=> array(3) { [0]=> int(112) [1]=> int(113) [2]=> int(115) } ["jijie"]=> array(2) { [0]=> int(3) [1]=> int(7) }}/**/ 我只是举一个例子,我要的是适合所有情况的,2楼说的explode估计是只看了帖子标题就回复的吧,内容看了吗? function explode_str($str) { $arr = explode(",",$str); $a = array(); $b = array(); $c = array(); foreach ($arr as $ar) { if (is_numeric($ar)) { $a[] = $ar; } else { $b[] = $ar; } $c = array ( $a, $b ); } return $c;}$str = 'pingpai,112,113,115,jijie,3,7';print_r(explode_str($str)); $str = 'pingpai,112,113,115,jijie,3,7';#1.foreach(explode(',',$str) as $v){ if(!is_numeric($v)) { $key = $v;continue; } $ret[$key][] = $v;}print_r($ret);#2. parse_str(preg_replace('#,?([a-z]+),#i','&\1=',$str),$out);print_r(array_map(create_function('$a','return explode(",",$a);'),$out)); $str = 'pingpai,112,113,115,jijie,3,7';preg_replace('/,?([a-z]+),((?:,?[\d])+)/ie', '$params[$1]=explode(",","$2")', $str);print_r($params);Array( [pingpai] => Array ( [0] => 112 [1] => 113 [2] => 115 ) [jijie] => Array ( [0] => 3 [1] => 7 )) php页面怎么通过下拉菜单来匹配数据库里的表 不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接 关于PHR重定向问题 想找一些关于PHP生成HTML的详细教程 我想学php有人教我吗 谁帮我解释一下list的这个用法 安装PHP的问题,搞了一天都没有搞定,高手请进,高分相送 贴子不能刷新了,gz不能说了,参与分没了,我也快要退出CSDN了……极度不理解中(ipman) 正则问题来一发 关于PHP连接MySQL的权限问题 这样也可以达到反射的效果 $count为什么输出为0!!指教
$str = 'pingpai,112,113,115,jijie,3,7';
$str = substr(preg_replace('/([a-z]+),/i', '),"\\1" =>array(', "$str,)"), 2);
$arr = eval("return array($str);");var_dump($arr);
/**array(2) {
["pingpai"]=>
array(3) {
[0]=>
int(112)
[1]=>
int(113)
[2]=>
int(115)
}
["jijie"]=>
array(2) {
[0]=>
int(3)
[1]=>
int(7)
}
}
/**/
function explode_str($str) {
$arr = explode(",",$str);
$a = array();
$b = array();
$c = array();
foreach ($arr as $ar) {
if (is_numeric($ar)) {
$a[] = $ar;
} else {
$b[] = $ar;
}
$c = array (
$a,
$b
);
}
return $c;
}
$str = 'pingpai,112,113,115,jijie,3,7';
print_r(explode_str($str));
#1.
foreach(explode(',',$str) as $v)
{
if(!is_numeric($v))
{
$key = $v;continue;
}
$ret[$key][] = $v;
}print_r($ret);
#2.
parse_str(preg_replace('#,?([a-z]+),#i','&\1=',$str),$out);
print_r(array_map(create_function('$a','return explode(",",$a);'),$out));
preg_replace('/,?([a-z]+),((?:,?[\d])+)/ie', '$params[$1]=explode(",","$2")', $str);
print_r($params);
Array
(
[pingpai] => Array
(
[0] => 112
[1] => 113
[2] => 115
) [jijie] => Array
(
[0] => 3
[1] => 7
))