有数据
a1:内容1,a2:内容2,a3:内容3,a4:内容4,a5:内容5,a6:内容6,能否根据指定的a1取得内容1
a2的话就取内容2
.............

解决方案 »

  1.   

    $str = "a1:内容1,a2:内容2,a3:内容3,a4:内容4,a5:内容5,a6:内容6,";$serach = "a1";
    preg_match(sprintf("/%s:([^:,]+)/i")"/",$serach),$str,$matches);
    var_dump($matches[1]);
    可以,但是要确定a1内容不包含一些特殊字符,否则要转义.
    比如说 " ' [ ] ( )等正则的特殊字符.不过建议还是用字符串操作来做更好些.
      

  2.   

    你这是多次取,不应该用正则,不然每次取相关内容都要遍历一次字符串。$str = 'a1:内容1,a2:内容2,a3:内容3,a4:内容4,a5:内容5,a6:内容6,';$data = explode(',',$str);
    foreach($data as $k=>$v)
    {
    list($k2,$v2) = explode(':',$v);
    $dataArray[$k2] = $v2;
    }
    echo $dataArray['a6'];//内容6
    echo $dataArray['a2'];//内容2