php有没得 直接把字符串分割为key value形式的函数 有没有这样的函数把 a,100,b,32,c,10变成 array( 'a'=>100, 'b'=>32, 'c'=>10)有没得直接的函数否则我只能str_split 然后循环变了 o(╯□╰)o 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $str = 'a,100,b,32,c,10,d,20';$res_str = implode(',',array_map(create_function('$v', 'return implode("=>",$v);'), array_chunk(explode(',', $str), 2)));$res = eval("return array($res_str);");echo '<pre>';print_r($res);echo '</pre>';/*Array( [a] => 100 [b] => 32 [c] => 10 [d] => 20)*/ 高。我没想到用这种方法。要我就重新new个array往里面扔数据 直接的函数没有,恶心的代码有很多...$Str = 'a,100,b,32,c,10';preg_match_all('/[a-z]+/i', $Str, $Aarray);$Aarray = $Aarray[0];preg_match_all('/[0-9]+/', $Str, $Barray);$Barray = $Barray[0];$Carray = array_combine($Aarray, $Barray);print_r($Carray); 11文 你又来鸟 我只想到 explode$str = 'a,100,b,32,c,10';$arr = explode(',',$str);for($i = 0 ; $i <count($arr); $i++){ if($i %2 ==0) $new_arr[$arr[$i]] = $arr[$i+1];} 来一个另类的$s = 'a,100,b,32,c,10';preg_replace('/(\w+),([^,]+)/se', '$ar[$1]=$2', $s);print_r($ar);Array( [a] => 100 [b] => 32 [c] => 10) 好吧,我来换汤不换药$Str = 'a,100,b,32,c,10';preg_match_all('/([a-z]+),([0-9]+)/i', $Str, $Aarray);$Carray = array_combine($Aarray[1], $Aarray[2]);var_dump($Carray); $str = "a,100,b,32,c,10";eval("\$res=array(".preg_replace("/([^,]+),([^,]+)/", "'\\1'=>'\\2'", $str).");");print_r($res);/*Array( [a] => 100 [b] => 32 [c] => 10)*/ s如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。e如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换,? 在 . + 和 * 之后 表示非贪婪匹配: *、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。 谁有没有php w32工程? php视频教程。 做导出excel,查询出数据后,导出到excel,求流程! php顯示圖片問題 如何获取发帖数? 如何 截取指定UTF8 中文的字串? 怎么样从一组数字中按条件随机生成序列 谢谢你的帮忙(记录显示问题) WinInet模拟HTTP的POST请求出错 请教一下PHP怎样在二维数组查找匹配字符串元素效率比较高 API测试原则 这个文本为什么替换不了?只执行循环的第一次。。。谁帮看下问题在哪!
$str = 'a,100,b,32,c,10,d,20';
$res_str = implode(',',array_map(create_function('$v', 'return implode("=>",$v);'), array_chunk(explode(',', $str), 2)));
$res = eval("return array($res_str);");echo '<pre>';
print_r($res);
echo '</pre>';
/*
Array
(
[a] => 100
[b] => 32
[c] => 10
[d] => 20
)
*/
$Str = 'a,100,b,32,c,10';
preg_match_all('/[a-z]+/i', $Str, $Aarray);
$Aarray = $Aarray[0];
preg_match_all('/[0-9]+/', $Str, $Barray);
$Barray = $Barray[0];
$Carray = array_combine($Aarray, $Barray);
print_r($Carray);
$arr = explode(',',$str);
for($i = 0 ; $i <count($arr); $i++)
{
if($i %2 ==0)
$new_arr[$arr[$i]] = $arr[$i+1];
}
$s = 'a,100,b,32,c,10';preg_replace('/(\w+),([^,]+)/se', '$ar[$1]=$2', $s);
print_r($ar);
Array
(
[a] => 100
[b] => 32
[c] => 10
)
$Str = 'a,100,b,32,c,10';
preg_match_all('/([a-z]+),([0-9]+)/i', $Str, $Aarray);
$Carray = array_combine($Aarray[1], $Aarray[2]);var_dump($Carray);
$str = "a,100,b,32,c,10";
eval("\$res=array(".preg_replace("/([^,]+),([^,]+)/", "'\\1'=>'\\2'", $str).");");
print_r($res);
/*
Array
(
[a] => 100
[b] => 32
[c] => 10
)
*/
如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。e
如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换,
? 在 . + 和 * 之后 表示非贪婪匹配: *、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。