求教字符串变数组的有关问题
求教字符串变数组的问题
$s="流 水 号:JH0019 状 态:处理中 等级 :高 时间: 2013-05-28 12:55:29"
如何转为数组结构为
array(
[流水号]=>JH0019
[状态]=>处理中
[等级]=>高
[时间]=>2013-05-28 12:55:29
)
我的思路是:
先把“ ”改|
再把||改|
再把:|改:
再把|:改:
但是时间中的空格和流 水 号中间的空格我就不知道怎么去掉了
最后用
$a=array();
foreach (explode('|',$s) as $s){
list($k,$v)=explode(':',$s);
$a[$k]=$v;}
我已经经改晕了,如何能搞出结果,请大家帮帮忙,谢谢
------解决方案--------------------
(
[流水号] => JH0019
[状态] => 处理中
[等级] => 高
[时间] => 2013-05-28 12:55:29
)
------解决方案--------------------
$s="流 水 号:JH0019 状 态:处理中 等级 :高 时间: 2013-05-28 12:55:29"
如何转为数组结构为
array(
[流水号]=>JH0019
[状态]=>处理中
[等级]=>高
[时间]=>2013-05-28 12:55:29
)
我的思路是:
先把“ ”改|
再把||改|
再把:|改:
再把|:改:
但是时间中的空格和流 水 号中间的空格我就不知道怎么去掉了
最后用
$a=array();
foreach (explode('|',$s) as $s){
list($k,$v)=explode(':',$s);
$a[$k]=$v;}
我已经经改晕了,如何能搞出结果,请大家帮帮忙,谢谢
------解决方案--------------------
$s = "流 水 号:JH0019 状 态:处理中 等级 :高 时间: 2013-05-28 12:55:29";Array
$a = preg_split('/:\s*([ \d:-]+
------解决方案--------------------
\S+)/', $s, -1, PREG_SPLIT_DELIM_CAPTURE
------解决方案--------------------
PREG_SPLIT_NO_EMPTY);
foreach(array_chunk($a, 2) as $r) {
$res[preg_replace('/\s
------解决方案--------------------
/', '', $r[0])] = $r[1];
}
print_r($res);
(
[流水号] => JH0019
[状态] => 处理中
[等级] => 高
[时间] => 2013-05-28 12:55:29
)
------解决方案--------------------
$s="流 水 号:JH0019 状 态:处理中 等级 :高 时间: 2013-05-28 12:55:29";
preg_match_all('/([^:]+):([^\s]+)/', $s, $m);
echo '<pre>';
var_dump($m);
/**
输出结果:
array(3) {
[0]=>
array(3) {
[0]=>
string(20) "流 水 号:JH0019"
[1]=>
string(24) " 状 态:处理中"
[2]=>
string(15) " 等级 :高"
}
[1]=>
array(3) {
[0]=>
string(11) "流 水 号"
[1]=>
string(12) " 状 态"
[2]=>
string(9) " 等级 "
}
[2]=>
array(3) {
[0]=>
string(6) "JH0019"
[1]=>
string(9) "处理中"
[2]=>
string(3) "高"
}
}
*/