求助字符串转换数组 $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 )) 插入多条数据 关于页面刷新重复提交的问题和isset的问题 update条件无效 php 删除数组中的值 PHP + PostgreSql的问题 mysql插入float到数据库里就变成整数了! 对正则不是很熟悉,有点X鸟。网上搜了半天没找到,有空帮帮偶。 谁用过php下面的tidy?有问题请教。[内详] 一个关于配置apache服务器的问题,各位高手帮帮忙! 多条件查询结果页面分页的问题 这样也可以达到反射的效果 $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
))