快捷搜索: W

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

阅读推荐:
富网店商学院:淘宝刷单小号注册+防封+解异常8课完整版
php教程_PHP_递归函数时return的Bug
【IT客学院】神一样的模仿[1]--Android案例开发的利刃(完结).zip
java教程_想自学点开发怎么才能快速入门呢(JAVA教程学习参考资料)
《计算机应用文摘2014年》更新至8月下[PDF] 资料下载
[JavaIO学习]RandomAccess接口的研究_java基础知识总结
[CSS学习]CSS入门(6):外边距margin_java基础知识总结
[Swing学习]蒙娜丽莎的微笑(JAVA代码绘制)_java基础知识总结
《ActionScript 3 设计模式》(Advanced ActionScript 3 With Design Patterns)扫描...
淘宝大学培训教程之一洋淘宝培训课程[价值352元]


php教程:
求教字符串变数组的问题
$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 '<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) "高"
  }
}
*/

您可能还会对下面的文章感兴趣: