<?php$str = '[当日汇总]||A-直营3232514||A-电商-3902.8||[各中心当日汇总]||B-二中心1246628||B-三中心147535||B-四中心45156||B-五中心38779||B-一中心1754416||[各中心当月汇总]||C-电商121255.27||C-二中心9318335.5||C-三中心924882.4||C-四中心514201||C-五中心272218.5||C-一中心8716775||[当日销售最高店]||E-一中心-3902-3902.8||E-二中心122267||E-三中心23236||E-四中心12935||E-五中心--18627||';$regex = '/\||(.*?)\||/';
$regex1 = '/\[(.*?)\]/';
$matches = array();
preg_match_all($regex, $str,$matches);$matches1 = array();
$matches2 = array();$i = 0;
foreach($matches[1] as $v){
if(strstr($v,'[')){
preg_match_all($regex1, $v,$matches1);
$matches2[$i][] = $matches1[1][0];
$i++;
}else{
$matches2[$i-1][] = $v;
}
}
var_dump(json_encode($matches2));

解决方案 »

  1.   


    $str = '[当日汇总]||A-直营3232514||A-电商-3902.8||[各中心当日汇总]||B-二中心1246628||B-三中心147535||B-四中心45156||B-五中心38779||B-一中心1754416||[各中心当月汇总]||C-电商121255.27||C-二中心9318335.5||C-三中心924882.4||C-四中心514201||C-五中心272218.5||C-一中心8716775||[当日销售最高店]||E-一中心-3902-3902.8||E-二中心122267||E-三中心23236||E-四中心12935||E-五中心--18627||';
    $arr = explode("||",$str);
    $res = array();
    $pos = -1;
    foreach($arr as $k => $v){
        if(strpos($v,']'))
            $pos ++;
        $res[$pos][] = trim($v,'[]');
    }
    var_dump($res);
      

  2.   


    json_encode一下,应该能用,呵呵