JH0019[状态]=>处理中[等级]=>高[时间]=>2">
当前位置:Gxlcms > PHP教程 > 求教字符串变数组的有关问题

求教字符串变数组的有关问题

时间:2021-07-01 10:21:17 帮助过:7人阅读

求教字符串变数组的问题
$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";
$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);
Array
(
[流水号] => JH0019
[状态] => 处理中
[等级] => 高
[时间] => 2013-05-28 12:55:29
)

------解决方案--------------------

$s="流 水 号:JH0019 状   态:处理中 等级 :高 时间: 2013-05-28 12:55:29";
preg_match_all('/([^:]+):([^\s]+)/', $s, $m);
echo '
';
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) "高"
}
}
*/

人气教程排行