!求助!如何用一个PHP将指定字符转换为自加值? 本帖最后由 sinat_20437561 于 2014-09-05 11:37:24 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 -------------用PHP处理如下----------------价格区间,97771=>"0-800元",97771=>"800-1200元",97771=>"1200-2000元",97771=>"2000-3000元",97771=>"3000元以上"价格区间##0-800元,97771##800-1200元,97771##1200-2000元,97771##2000-3000元,97771##3000元以上,97771------------处理结果如下-------------价格区间,1=>"0-800元",2=>"800-1200元",3=>"1200-2000元",4=>"2000-3000元",5=>"3000元以上"价格区间##0-800元,1##800-1200元,2##1200-2000元,3##2000-3000元,4##3000元以上,5--------------------不要管数组,就当处理文本字符---------------- 我现在是用Gvim分段来处理的,比较麻烦。 <?php$jgqj[]='0-800元';$jgqj[]='800-1200元';$jgqj[]='1200-2000元';$jgqj[]='2000-3000元';$jgqj[]='3000元以上';$l=count($jgqj);for($i=0;$i<$l;$i++){ echo '##'.$jgqj[$i].','.$i.'<br>';};?> 你好像是这个意思$s =<<< TXT价格区间,97771=>"0-800元",97771=>"800-1200元",97771=>"1200-2000元",97771=>"2000-3000元",97771=>"3000元以上"价格区间##0-800元,97771##800-1200元,97771##1200-2000元,97771##2000-3000元,97771##3000元以上,97771TXT;$st = array();echo preg_replace_callback('/(,\d{2,})=>"([^"]+)"|(#.+)(,\d+)/', function($m) use (&$st) { if(!isset($m[3]) && $m[1]{0} == ',') { $st[] = $m[2]; return str_replace($m[1], ',' . count($st), $m[0]); }elseif(($n = array_search(substr($m[3], 2), $st)) !== false) { return str_replace($m[4], ',' . ($n+1), $m[0]); } return $m[0]; }, $s);价格区间,1=>"0-800元",2=>"800-1200元",3=>"1200-2000元",4=>"2000-3000元",5=>"3000元以上"价格区间##0-800元,1##800-1200元,2##1200-2000元,3##2000-3000元,4##3000元以上,5学会表达自己的想法还是很重要的 斑竹,你的代码我本地提示错,syntax error, unexpected T_FUNCTION 。 (PHP Version 5.2.6)而服务器上显示空白呢。 我的代码只适用于 php5.3 及以后,版本低的话你自己改吧 非常感谢,5.3正常斑竹在帮忙完善下,现在类似这样的无法正常处理价格区间,97771=>"0-800元",97771=>"800-1200元",97771=>"1200-2000元",97771=>"2000-3000元",97771=>"3000元以上" 价格区间,97771=>"0-800元",97771=>"800-1200元",97771=>"1200-2000元",97771=>"2000-3000元",97771=>"3000元以上" 价格区间##0-800元,97771##800-1200元,97771##1200-2000元,97771##2000-3000元,97771##3000元以上,97771价格区间##0-800元,97771##800-1200元,97771##1200-2000元,97771##2000-3000元,97771##3000元以上,97771 以及下类也不行,可能是纯汉字的原因适用场景,97771=>"旅游",97771=>"家用",97771=>"时尚",97771=>"专业",97771=>"女性",97771=>"潮流" 价格区间##0-800元,97771##800-1200元,97771##1200-2000元,97771##2000-3000元,97771##3000元以上,97771 $s =<<< TXT价格区间,97771=>"0-800元",97771=>"800-1200元",97771=>"1200-2000元",97771=>"2000-3000元",97771=>"3000元以上"价格区间,97771=>"0-800元",97771=>"800-1200元",97771=>"1200-2000元",97771=>"2000-3000元",97771=>"3000元以上"价格区间##0-800元,97771##800-1200元,97771##1200-2000元,97771##2000-3000元,97771##3000元以上,97771价格区间##0-800元,97771##800-1200元,97771##1200-2000元,97771##2000-3000元,97771##3000元以上,97771TXT;$st = array();echo preg_replace_callback('/(,\d{2,})=>"([^"]+)"|(#.+)(,\d+)/', function($m) use (&$st) { if(!isset($m[3]) && $m[1]{0} == ',') { if( ! in_array($m[2], $st)) $st[] = $m[2]; return str_replace($m[1], ',' . (array_search($m[2], $st)+1), $m[0]); }elseif(($n = array_search(substr($m[3], 2), $st)) !== false) { return str_replace($m[4], ',' . ($n+1), $m[0]); } return $m[0]; }, $s);价格区间,1=>"0-800元",2=>"800-1200元",3=>"1200-2000元",4=>"2000-3000元",5=>"3000元以上"价格区间,1=>"0-800元",2=>"800-1200元",3=>"1200-2000元",4=>"2000-3000元",5=>"3000元以上"价格区间##0-800元,1##800-1200元,2##1200-2000元,3##2000-3000元,4##3000元以上,5价格区间##0-800元,1##800-1200元,2##1200-2000元,3##2000-3000元,4##3000元以上,5说清楚你的需求,不要总是让人猜 要处理的数量有比这多的,也有比这少的,格式就是上面那样的。格式参考:【filed】:备注的文字1,97771=>"任意字符甲",97771=>"任意字符乙" ,97771=>"..................."备注的文字2,97771=>"任意字符甲",97771=>"任意字符乙" ,97771=>"..................."...............................备注的文字N,97771=>"任意字符甲",97771=>"任意字符乙" ,97771=>"..................."【listNtitle】:备注的文字1##任意字符甲,97771##任意字符乙,97771##....................,97771备注的文字2##任意字符甲,97771##任意字符乙,97771##....................,97771....................................备注的文字第N项##任意字符甲,97771##任意字符乙,97771##....................,97771 你用我贴出来的那段测试,处理的结果有问题的。要处理格式【filed】:备注的文字1,97771=>"任意字符甲",97771=>"任意字符乙",97771=>"..................." 备注的文字2,97771=>"任意字符甲",97771=>"任意字符乙",97771=>"..................." ............................... 备注的文字N,97771=>"任意字符甲",97771=>"任意字符乙",97771=>"..................." 【listNtitle】:备注的文字1##任意字符甲,97771##任意字符乙,97771##....................,97771 备注的文字2##任意字符甲,97771##任意字符乙,97771##....................,97771 .................................... 备注的文字第N项##任意字符甲,97771##任意字符乙,97771##....................,97771处理结果的格式:【filed】:备注的文字1,1=>"任意字符甲",2=>"任意字符乙",3=>"...................".............................,∞=>"..................." 备注的文字2,1=>"任意字符甲",2=>"任意字符乙",3=>"...................".............................,∞=>"..................." ............................... 备注的文字N,1=>"任意字符甲",2=>"任意字符乙",3=>"...................".............................,∞=>"..................." 【listNtitle】:备注的文字1##任意字符甲,1##任意字符乙,2##....................,3.............................##....................,∞ 备注的文字2##任意字符甲,1##任意字符乙,2##....................,3.............................##....................,∞ .................................... 备注的文字第N项##任意字符甲,1##任意字符乙,2##....................,3............................##....................,∞ 这是处理所贴出文本的结果,明显不对。【filed】:品牌,1=>"Canon/佳能",2=>"Sony/索尼",3=>"Casio/卡西欧",4=>"Fujifilm/富士",5=>"Nikon/尼康",6=>"Panasonic/松下",7=>"Samsung/三星",8=>"Olympus/奥林巴斯",9=>"Kodak/柯达",10=>"Aigo/爱国者",11=>"Benq/明基",12=>"Ricoh/理光",13=>"Pentax/宾得",14=>"Disney/迪士尼",15=>"Sanyo/三洋",16=>"Sigma/适马",17=>"Leica/徕卡",18=>"HP/惠普",19=>"索爱",20=>"Fujitsu/富士通",21=>"Praktica/柏卡",22=>"Hnsat/亨思特",23=>"尼柯",24=>"宝达",25=>"酷彩王",26=>"TCL",27=>"禄莱",28=>"德之杰",29=>"广博",30=>"RICH/莱彩",31=>"HelloKitty",32=>"学者",33=>"Creative/创新",34=>"英耐特",35=>"AdvancedPlus/爱得门斯",36=>"JWD/京华",37=>"digimaster",38=>"ORACOM/奥莱卡",39=>"Ordro/欧达",40=>"MPGIO",41=>"BoQy/宝淇",42=>"Pamiel/拍美乐",43=>"SAST/先科",44=>"BDLong/邦德龙",45=>"OIGIOO/德浦",46=>"Hasselblad/哈苏",47=>"Polaroid/宝丽来",48=>"rochy",49=>"FUGN/富京",50=>"清华紫光",51=>"Haier/海尔",52=>"GE/通用电气",53=>"SEAGULL/海鸥",54=>"Phenix/凤凰",55=>"amkov"价格区间,56=>"0-800元",57=>"800-1200元",58=>"1200-2000元",59=>"2000-3000元",60=>"3000元以上"适用场景,61=>"旅游便携",62=>"家用",63=>"轻薄时尚",64=>"专业旗舰",65=>"女性市场",66=>"个性潮流"有效像素,67=>"2000万以上",68=>"1600-2000万",69=>"1200-1400万",70=>"1400-1600万",71=>"1000万及以下",72=>"1000-1200万",73=>"约2010万"光学变焦,74=>"35倍",75=>"50倍",76=>"5倍",77=>"30倍",78=>"10倍",79=>"4倍",80=>"3倍",81=>"定焦",82=>"12.5倍",83=>"12倍",84=>"20倍",85=>"8倍",86=>"18倍",87=>"16倍",88=>"21倍",89=>"15倍",90=>"26倍",91=>"24倍",92=>"6倍",93=>"3.6倍",94=>"7倍",95=>"14倍",96=>"42倍",97=>"3.8倍",98=>"可更换镜头",99=>"2.5倍",100=>"4.6倍",101=>"2倍以下",102=>"2倍",103=>"3.4倍",104=>"4.2倍"上市时间,105=>"2004年",106=>"2005年",107=>"2006年",108=>"2007年",109=>"2008年",110=>"2009年",111=>"2010年",112=>"2011年",113=>"2012年",114=>"2013年",115=>"2004年以前",116=>"2014年"感光元件类型,117=>"CMOS",118=>"CCD",119=>"LiveMOS"传感器尺寸,120=>"1/1.7英寸",121=>"1/1.8英寸",122=>"1/2.3英寸",123=>"1/2.33英寸",124=>"1/2.5英寸",125=>"1/2.7英寸",126=>"1/3.2英寸",127=>"2/3英寸",128=>"4/3英寸",129=>"1/2英寸",130=>"1/1.6英寸",131=>"23.6mmx15.8mm",132=>"2.4英寸"特殊功能,133=>"长焦",134=>"光学防抖",135=>"广角",136=>"高清摄像",137=>"面部优先",138=>"微距",139=>"触摸屏",140=>"手动挡",141=>"旋转液晶屏",142=>"防水",143=>"笑脸快门",144=>"防摔",145=>"防冻",146=>"支持外接闪光灯",147=>"无特殊功能",148=>"支持RAW格式文件",149=>"防尘",150=>"支持GPS功能"防抖性能,134=>"光学防抖",151=>"电子防抖",152=>"不防抖",153=>"双重防抖",154=>"多重防抖"【listNtitle】:品牌##Canon/佳能,1##Sony/索尼,2##Casio/卡西欧,3##Fujifilm/富士,4##Nikon/尼康,5##Panasonic/松下,6##Samsung/三星,7##Olympus/奥林巴斯,8##Kodak/柯达,9##Aigo/爱国者,10##Benq/明基,11##Ricoh/理光,12##Pentax/宾得,13##Disney/迪士尼,14##Sanyo/三洋,15##Sigma/适马,16##Leica/徕卡,17##HP/惠普,18##索爱,19##Fujitsu/富士通,20##Praktica/柏卡,21##Hnsat/亨思特,22##尼柯,23##宝达,24##酷彩王,25##TCL,26##禄莱,27##德之杰,28##广博,29##RICH/莱彩,30##HelloKitty,31##学者,32##Creative/创新,33##英耐特,34##AdvancedPlus/爱得门斯,35##JWD/京华,36##digimaster,37##ORACOM/奥莱卡,38##Ordro/欧达,39##MPGIO,40##BoQy/宝淇,41##Pamiel/拍美乐,42##SAST/先科,43##BDLong/邦德龙,44##OIGIOO/德浦,45##Hasselblad/哈苏,46##Polaroid/宝丽来,47##rochy,48##FUGN/富京,49##清华紫光,50##Haier/海尔,51##GE/通用电气,52##SEAGULL/海鸥,53##Phenix/凤凰,54##amkov,55价格区间##0-800元,56##800-1200元,57##1200-2000元,58##2000-3000元,59##3000元以上,60适用场景##旅游便携,61##家用,62##轻薄时尚,63##专业旗舰,64##女性市场,65##个性潮流,66有效像素##2000万以上,67##1600-2000万,68##1200-1400万,69##1400-1600万,70##1000万及以下,71##1000-1200万,72##约2010万,73光学变焦##35倍,74##50倍,75##5倍,76##30倍,77##10倍,78##4倍,79##3倍,80##定焦,81##12.5倍,82##12倍,83##20倍,84##8倍,85##18倍,86##16倍,87##21倍,88##15倍,89##26倍,90##24倍,91##6倍,92##3.6倍,93##7倍,94##14倍,95##42倍,96##3.8倍,97##可更换镜头,98##2.5倍,99##4.6倍,100##2倍以下,101##2倍,102##3.4倍,103##4.2倍,104上市时间##2004年,105##2005年,106##2006年,107##2007年,108##2008年,109##2009年,110##2010年,111##2011年,112##2012年,113##2013年,114##2004年以前,115##2014年,116感光元件类型##CMOS,117##CCD,118##LiveMOS,119传感器尺寸##1/1.7英寸,120##1/1.8英寸,121##1/2.3英寸,122##1/2.33英寸,123##1/2.5英寸,124##1/2.7英寸,125##1/3.2英寸,126##2/3英寸,127##4/3英寸,128##1/2英寸,129##1/1.6英寸,130##23.6mmx15.8mm,131##2.4英寸,132特殊功能##长焦,133##光学防抖,134##广角,135##高清摄像,136##面部优先,137##微距,138##触摸屏,139##手动挡,140##旋转液晶屏,141##防水,142##笑脸快门,143##防摔,144##防冻,145##支持外接闪光灯,146##无特殊功能,147##支持RAW格式文件,148##防尘,149##支持GPS功能,150防抖性能##光学防抖,134##电子防抖,151##不防抖,152##双重防抖,153##多重防抖,154 可见正确的描述需求是多么的重要$k = ',97771';$n = 0;echo preg_replace_callback('/.+$/m', function($m) use ($k, &$n) { $r = preg_replace("/$k/", ',' . (++$n), $m[0]); if($m[0] == $r) $n = 0; return $r; }, $s);【filed】:品牌,1=>"Canon/佳能",2=>"Sony/索尼",3=>"Casio/卡西欧",4=>"Fujifilm/富士",5=>"Nikon/尼康",6=>"Panasonic/松下",7=>"Samsung/三星",8=>"Olympus/奥林巴斯",9=>"Kodak/柯达",10=>"Aigo/爱国者",11=>"Benq/明基",12=>"Ricoh/理光",13=>"Pentax/宾得",14=>"Disney/迪士尼",15=>"Sanyo/三洋",16=>"Sigma/适马",17=>"Leica/徕卡",18=>"HP/惠普",19=>"索爱",20=>"Fujitsu/富士通",21=>"Praktica/柏卡",22=>"Hnsat/亨思特",23=>"尼柯",24=>"宝达",25=>"酷彩王",26=>"TCL",27=>"禄莱",28=>"德之杰",29=>"广博",30=>"RICH/莱彩",31=>"Hello Kitty",32=>"学者",33=>"Creative/创新",34=>"英耐特",35=>"Advanced Plus/爱得门斯",36=>"JWD/京华",37=>"digimaster",38=>"ORACOM/奥莱卡",39=>"Ordro/欧达",40=>"MPGIO",41=>"BoQy/宝淇",42=>"Pamiel/拍美乐",43=>"SAST/先科",44=>"BDLong/邦德龙",45=>"OIGIOO/德浦",46=>"Hasselblad/哈苏",47=>"Polaroid/宝丽来",48=>"rochy",49=>"FUGN/富京",50=>"清华紫光",51=>"Haier/海尔",52=>"GE/通用电气",53=>"SEAGULL/海鸥",54=>"Phenix/凤凰",55=>"amkov"价格区间,1=>"0-800元",2=>"800-1200元",3=>"1200-2000元",4=>"2000-3000元",5=>"3000元以上"适用场景,1=>"旅游便携",2=>"家用",3=>"轻薄时尚",4=>"专业旗舰",5=>"女性市场",6=>"个性潮流"有效像素,1=>"2000万以上",2=>"1600-2000万",3=>"1200-1400万",4=>"1400-1600万",5=>"1000万及以下",6=>"1000-1200万",7=>"约2010万"光学变焦,1=>"35倍",2=>"50倍",3=>"5倍",4=>"30倍",5=>"10倍",6=>"4倍",7=>"3倍",8=>"定焦",9=>"12.5倍",10=>"12倍",11=>"20倍",12=>"8倍",13=>"18倍",14=>"16倍",15=>"21倍",16=>"15倍",17=>"26倍",18=>"24倍",19=>"6倍",20=>"3.6倍",21=>"7倍",22=>"14倍",23=>"42倍",24=>"3.8倍",25=>"可更换镜头",26=>"2.5倍",27=>"4.6倍",28=>"2倍以下",29=>"2倍",30=>"3.4倍",31=>"4.2倍"上市时间,1=>"2004年",2=>"2005年",3=>"2006年",4=>"2007年",5=>"2008年",6=>"2009年",7=>"2010年",8=>"2011年",9=>"2012年",10=>"2013年",11=>"2004年以前",12=>"2014年"感光元件类型,1=>"CMOS",2=>"CCD",3=>"Live MOS"传感器尺寸,1=>"1/1.7英寸",2=>"1/1.8英寸",3=>"1/2.3英寸",4=>"1/2.33英寸",5=>"1/2.5英寸",6=>"1/2.7英寸",7=>"1/3.2英寸",8=>"2/3英寸",9=>"4/3英寸",10=>"1/2英寸",11=>"1/1.6英寸",12=>"23.6mmx15.8mm",13=>"2.4英寸"特殊功能,1=>"长焦",2=>"光学防抖",3=>"广角",4=>"高清摄像",5=>"面部优先",6=>"微距",7=>"触摸屏",8=>"手动挡",9=>"旋转液晶屏",10=>"防水",11=>"笑脸快门",12=>"防摔",13=>"防冻",14=>"支持外接闪光灯",15=>"无特殊功能",16=>"支持RAW格式文件",17=>"防尘",18=>"支持GPS功能"防抖性能,1=>"光学防抖",2=>"电子防抖",3=>"不防抖",4=>"双重防抖",5=>"多重防抖"【listNtitle】:品牌##Canon/佳能,1##Sony/索尼,2##Casio/卡西欧,3##Fujifilm/富士,4##Nikon/尼康,5##Panasonic/松下,6##Samsung/三星,7##Olympus/奥林巴斯,8##Kodak/柯达,9##Aigo/爱国者,10##Benq/明基,11##Ricoh/理光,12##Pentax/宾得,13##Disney/迪士尼,14##Sanyo/三洋,15##Sigma/适马,16##Leica/徕卡,17##HP/惠普,18##索爱,19##Fujitsu/富士通,20##Praktica/柏卡,21##Hnsat/亨思特,22##尼柯,23##宝达,24##酷彩王,25##TCL,26##禄莱,27##德之杰,28##广博,29##RICH/莱彩,30##Hello Kitty,31##学者,32##Creative/创新,33##英耐特,34##Advanced Plus/爱得门斯,35##JWD/京华,36##digimaster,37##ORACOM/奥莱卡,38##Ordro/欧达,39##MPGIO,40##BoQy/宝淇,41##Pamiel/拍美乐,42##SAST/先科,43##BDLong/邦德龙,44##OIGIOO/德浦,45##Hasselblad/哈苏,46##Polaroid/宝丽来,47##rochy,48##FUGN/富京,49##清华紫光,50##Haier/海尔,51##GE/通用电气,52##SEAGULL/海鸥,53##Phenix/凤凰,54##amkov,55价格区间##0-800元,1##800-1200元,2##1200-2000元,3##2000-3000元,4##3000元以上,5适用场景##旅游便携,1##家用,2##轻薄时尚,3##专业旗舰,4##女性市场,5##个性潮流,6有效像素##2000万以上,1##1600-2000万,2##1200-1400万,3##1400-1600万,4##1000万及以下,5##1000-1200万,6##约2010万,7光学变焦##35倍,1##50倍,2##5倍,3##30倍,4##10倍,5##4倍,6##3倍,7##定焦,8##12.5倍,9##12倍,10##20倍,11##8倍,12##18倍,13##16倍,14##21倍,15##15倍,16##26倍,17##24倍,18##6倍,19##3.6倍,20##7倍,21##14倍,22##42倍,23##3.8倍,24##可更换镜头,25##2.5倍,26##4.6倍,27##2倍以下,28##2倍,29##3.4倍,30##4.2倍,31上市时间##2004年,1##2005年,2##2006年,3##2007年,4##2008年,5##2009年,6##2010年,7##2011年,8##2012年,9##2013年,10##2004年以前,11##2014年,12感光元件类型##CMOS,1##CCD,2##Live MOS,3传感器尺寸##1/1.7英寸,1##1/1.8英寸,2##1/2.3英寸,3##1/2.33英寸,4##1/2.5英寸,5##1/2.7英寸,6##1/3.2英寸,7##2/3英寸,8##4/3英寸,9##1/2英寸,10##1/1.6英寸,11##23.6mmx15.8mm,12##2.4英寸,13特殊功能##长焦,1##光学防抖,2##广角,3##高清摄像,4##面部优先,5##微距,6##触摸屏,7##手动挡,8##旋转液晶屏,9##防水,10##笑脸快门,11##防摔,12##防冻,13##支持外接闪光灯,14##无特殊功能,15##支持RAW格式文件,16##防尘,17##支持GPS功能,18防抖性能##光学防抖,1##电子防抖,2##不防抖,3##双重防抖,4##多重防抖,5 ZendStudio 怎样调试PHP? php 时间循环 关于文件上传服务器down机问题。 求高手这个数组怎么做php PHP中的数字字符串在不同编码下也能乱码? 用zendencode编译后的文件被include后无法运行怎么回事? 小妹请教前辈读取分析Excel问题! php+mysql实现在线考试系统(单选,多选,判断) 高手请进!关于扩展PHP函数的问题! 关于发邮件 判断选中的单选框,并输出所对应的一行值 3人web开发团队,前后台如何交互?
-------------用PHP处理如下----------------价格区间
,97771=>"0-800元"
,97771=>"800-1200元"
,97771=>"1200-2000元"
,97771=>"2000-3000元"
,97771=>"3000元以上"价格区间
##0-800元,97771
##800-1200元,97771
##1200-2000元,97771
##2000-3000元,97771
##3000元以上,97771------------处理结果如下-------------价格区间
,1=>"0-800元"
,2=>"800-1200元"
,3=>"1200-2000元"
,4=>"2000-3000元"
,5=>"3000元以上"价格区间
##0-800元,1
##800-1200元,2
##1200-2000元,3
##2000-3000元,4
##3000元以上,5--------------------不要管数组,就当处理文本字符----------------
$jgqj[]='800-1200元';
$jgqj[]='1200-2000元';
$jgqj[]='2000-3000元';
$jgqj[]='3000元以上';
$l=count($jgqj);
for($i=0;$i<$l;$i++){
echo '##'.$jgqj[$i].','.$i.'<br>';
};
?>
价格区间
,97771=>"0-800元"
,97771=>"800-1200元"
,97771=>"1200-2000元"
,97771=>"2000-3000元"
,97771=>"3000元以上"价格区间
##0-800元,97771
##800-1200元,97771
##1200-2000元,97771
##2000-3000元,97771
##3000元以上,97771
TXT;$st = array();
echo preg_replace_callback('/(,\d{2,})=>"([^"]+)"|(#.+)(,\d+)/', function($m) use (&$st) {
if(!isset($m[3]) && $m[1]{0} == ',') {
$st[] = $m[2];
return str_replace($m[1], ',' . count($st), $m[0]);
}elseif(($n = array_search(substr($m[3], 2), $st)) !== false) {
return str_replace($m[4], ',' . ($n+1), $m[0]);
}
return $m[0];
}, $s);价格区间
,1=>"0-800元"
,2=>"800-1200元"
,3=>"1200-2000元"
,4=>"2000-3000元"
,5=>"3000元以上"价格区间
##0-800元,1
##800-1200元,2
##1200-2000元,3
##2000-3000元,4
##3000元以上,5
学会表达自己的想法还是很重要的
斑竹,你的代码我本地提示错,syntax error, unexpected T_FUNCTION 。 (PHP Version 5.2.6)
而服务器上显示空白呢。
非常感谢,5.3正常
斑竹在帮忙完善下,现在类似这样的无法正常处理价格区间
,97771=>"0-800元"
,97771=>"800-1200元"
,97771=>"1200-2000元"
,97771=>"2000-3000元"
,97771=>"3000元以上"
价格区间
,97771=>"0-800元"
,97771=>"800-1200元"
,97771=>"1200-2000元"
,97771=>"2000-3000元"
,97771=>"3000元以上"
价格区间
##0-800元,97771
##800-1200元,97771
##1200-2000元,97771
##2000-3000元,97771
##3000元以上,97771价格区间
##0-800元,97771
##800-1200元,97771
##1200-2000元,97771
##2000-3000元,97771
##3000元以上,97771
以及下类也不行,可能是纯汉字的原因适用场景
,97771=>"旅游"
,97771=>"家用"
,97771=>"时尚"
,97771=>"专业"
,97771=>"女性"
,97771=>"潮流"
价格区间
##0-800元,97771
##800-1200元,97771
##1200-2000元,97771
##2000-3000元,97771
##3000元以上,97771
价格区间
,97771=>"0-800元"
,97771=>"800-1200元"
,97771=>"1200-2000元"
,97771=>"2000-3000元"
,97771=>"3000元以上"价格区间
,97771=>"0-800元"
,97771=>"800-1200元"
,97771=>"1200-2000元"
,97771=>"2000-3000元"
,97771=>"3000元以上"价格区间
##0-800元,97771
##800-1200元,97771
##1200-2000元,97771
##2000-3000元,97771
##3000元以上,97771价格区间
##0-800元,97771
##800-1200元,97771
##1200-2000元,97771
##2000-3000元,97771
##3000元以上,97771
TXT;$st = array();
echo preg_replace_callback('/(,\d{2,})=>"([^"]+)"|(#.+)(,\d+)/', function($m) use (&$st) {
if(!isset($m[3]) && $m[1]{0} == ',') {
if( ! in_array($m[2], $st)) $st[] = $m[2];
return str_replace($m[1], ',' . (array_search($m[2], $st)+1), $m[0]);
}elseif(($n = array_search(substr($m[3], 2), $st)) !== false) {
return str_replace($m[4], ',' . ($n+1), $m[0]);
}
return $m[0];
}, $s);价格区间
,1=>"0-800元"
,2=>"800-1200元"
,3=>"1200-2000元"
,4=>"2000-3000元"
,5=>"3000元以上"价格区间
,1=>"0-800元"
,2=>"800-1200元"
,3=>"1200-2000元"
,4=>"2000-3000元"
,5=>"3000元以上"价格区间
##0-800元,1
##800-1200元,2
##1200-2000元,3
##2000-3000元,4
##3000元以上,5价格区间
##0-800元,1
##800-1200元,2
##1200-2000元,3
##2000-3000元,4
##3000元以上,5说清楚你的需求,不要总是让人猜
要处理的数量有比这多的,也有比这少的,格式就是上面那样的。格式参考:
【filed】:
备注的文字1
,97771=>"任意字符甲"
,97771=>"任意字符乙"
,97771=>"..................."备注的文字2
,97771=>"任意字符甲"
,97771=>"任意字符乙"
,97771=>"..................."...............................备注的文字N
,97771=>"任意字符甲"
,97771=>"任意字符乙"
,97771=>"..................."【listNtitle】:
备注的文字1
##任意字符甲,97771
##任意字符乙,97771
##....................,97771备注的文字2
##任意字符甲,97771
##任意字符乙,97771
##....................,97771....................................备注的文字第N项
##任意字符甲,97771
##任意字符乙,97771
##....................,97771
你用我贴出来的那段测试,处理的结果有问题的。要处理格式
【filed】:
备注的文字1
,97771=>"任意字符甲"
,97771=>"任意字符乙"
,97771=>"..................."
备注的文字2
,97771=>"任意字符甲"
,97771=>"任意字符乙"
,97771=>"..................."
...............................
备注的文字N
,97771=>"任意字符甲"
,97771=>"任意字符乙"
,97771=>"..................."
【listNtitle】:
备注的文字1
##任意字符甲,97771
##任意字符乙,97771
##....................,97771
备注的文字2
##任意字符甲,97771
##任意字符乙,97771
##....................,97771
....................................
备注的文字第N项
##任意字符甲,97771
##任意字符乙,97771
##....................,97771处理结果的格式:【filed】:
备注的文字1
,1=>"任意字符甲"
,2=>"任意字符乙"
,3=>"..................."
.............................
,∞=>"..................."
备注的文字2
,1=>"任意字符甲"
,2=>"任意字符乙"
,3=>"..................."
.............................
,∞=>"..................."
...............................
备注的文字N
,1=>"任意字符甲"
,2=>"任意字符乙"
,3=>"..................."
.............................
,∞=>"..................."
【listNtitle】:
备注的文字1
##任意字符甲,1
##任意字符乙,2
##....................,3
.............................
##....................,∞
备注的文字2
##任意字符甲,1
##任意字符乙,2
##....................,3
.............................
##....................,∞
....................................
备注的文字第N项
##任意字符甲,1
##任意字符乙,2
##....................,3
............................
##....................,∞
这是处理所贴出文本的结果,明显不对。
【filed】:
品牌
,1=>"Canon/佳能"
,2=>"Sony/索尼"
,3=>"Casio/卡西欧"
,4=>"Fujifilm/富士"
,5=>"Nikon/尼康"
,6=>"Panasonic/松下"
,7=>"Samsung/三星"
,8=>"Olympus/奥林巴斯"
,9=>"Kodak/柯达"
,10=>"Aigo/爱国者"
,11=>"Benq/明基"
,12=>"Ricoh/理光"
,13=>"Pentax/宾得"
,14=>"Disney/迪士尼"
,15=>"Sanyo/三洋"
,16=>"Sigma/适马"
,17=>"Leica/徕卡"
,18=>"HP/惠普"
,19=>"索爱"
,20=>"Fujitsu/富士通"
,21=>"Praktica/柏卡"
,22=>"Hnsat/亨思特"
,23=>"尼柯"
,24=>"宝达"
,25=>"酷彩王"
,26=>"TCL"
,27=>"禄莱"
,28=>"德之杰"
,29=>"广博"
,30=>"RICH/莱彩"
,31=>"Hello
Kitty"
,32=>"学者"
,33=>"Creative/创新"
,34=>"英耐特"
,35=>"Advanced
Plus/爱得门斯"
,36=>"JWD/京华"
,37=>"digimaster"
,38=>"ORACOM/奥莱卡"
,39=>"Ordro/欧达"
,40=>"MPGIO"
,41=>"BoQy/宝淇"
,42=>"Pamiel/拍美乐"
,43=>"SAST/先科"
,44=>"BDLong/邦德龙"
,45=>"OIGIOO/德浦"
,46=>"Hasselblad/哈苏"
,47=>"Polaroid/宝丽来"
,48=>"rochy"
,49=>"FUGN/富京"
,50=>"清华紫光"
,51=>"Haier/海尔"
,52=>"GE/通用电气"
,53=>"SEAGULL/海鸥"
,54=>"Phenix/凤凰"
,55=>"amkov"
价格区间
,56=>"0-800元"
,57=>"800-1200元"
,58=>"1200-2000元"
,59=>"2000-3000元"
,60=>"3000元以上"
适用场景
,61=>"旅游便携"
,62=>"家用"
,63=>"轻薄时尚"
,64=>"专业旗舰"
,65=>"女性市场"
,66=>"个性潮流"
有效像素
,67=>"2000万以上"
,68=>"1600-2000万"
,69=>"1200-1400万"
,70=>"1400-1600万"
,71=>"1000万及以下"
,72=>"1000-1200万"
,73=>"约2010万"
光学变焦
,74=>"35倍"
,75=>"50倍"
,76=>"5倍"
,77=>"30倍"
,78=>"10倍"
,79=>"4倍"
,80=>"3倍"
,81=>"定焦"
,82=>"12.5倍"
,83=>"12倍"
,84=>"20倍"
,85=>"8倍"
,86=>"18倍"
,87=>"16倍"
,88=>"21倍"
,89=>"15倍"
,90=>"26倍"
,91=>"24倍"
,92=>"6倍"
,93=>"3.6倍"
,94=>"7倍"
,95=>"14倍"
,96=>"42倍"
,97=>"3.8倍"
,98=>"可更换镜头"
,99=>"2.5倍"
,100=>"4.6倍"
,101=>"2倍以下"
,102=>"2倍"
,103=>"3.4倍"
,104=>"4.2倍"
上市时间
,105=>"2004年"
,106=>"2005年"
,107=>"2006年"
,108=>"2007年"
,109=>"2008年"
,110=>"2009年"
,111=>"2010年"
,112=>"2011年"
,113=>"2012年"
,114=>"2013年"
,115=>"2004年以前"
,116=>"2014年"
感光元件类型
,117=>"CMOS"
,118=>"CCD"
,119=>"Live
MOS"
传感器尺寸
,120=>"1/1.7英寸"
,121=>"1/1.8英寸"
,122=>"1/2.3英寸"
,123=>"1/2.33英寸"
,124=>"1/2.5英寸"
,125=>"1/2.7英寸"
,126=>"1/3.2英寸"
,127=>"2/3英寸"
,128=>"4/3英寸"
,129=>"1/2英寸"
,130=>"1/1.6英寸"
,131=>"23.6mmx15.8mm"
,132=>"2.4英寸"
特殊功能
,133=>"长焦"
,134=>"光学防抖"
,135=>"广角"
,136=>"高清摄像"
,137=>"面部优先"
,138=>"微距"
,139=>"触摸屏"
,140=>"手动挡"
,141=>"旋转液晶屏"
,142=>"防水"
,143=>"笑脸快门"
,144=>"防摔"
,145=>"防冻"
,146=>"支持外接闪光灯"
,147=>"无特殊功能"
,148=>"支持RAW格式文件"
,149=>"防尘"
,150=>"支持GPS功能"
防抖性能
,134=>"光学防抖"
,151=>"电子防抖"
,152=>"不防抖"
,153=>"双重防抖"
,154=>"多重防抖"
【listNtitle】:
品牌
##Canon/佳能,1
##Sony/索尼,2
##Casio/卡西欧,3
##Fujifilm/富士,4
##Nikon/尼康,5
##Panasonic/松下,6
##Samsung/三星,7
##Olympus/奥林巴斯,8
##Kodak/柯达,9
##Aigo/爱国者,10
##Benq/明基,11
##Ricoh/理光,12
##Pentax/宾得,13
##Disney/迪士尼,14
##Sanyo/三洋,15
##Sigma/适马,16
##Leica/徕卡,17
##HP/惠普,18
##索爱,19
##Fujitsu/富士通,20
##Praktica/柏卡,21
##Hnsat/亨思特,22
##尼柯,23
##宝达,24
##酷彩王,25
##TCL,26
##禄莱,27
##德之杰,28
##广博,29
##RICH/莱彩,30
##Hello
Kitty,31
##学者,32
##Creative/创新,33
##英耐特,34
##Advanced
Plus/爱得门斯,35
##JWD/京华,36
##digimaster,37
##ORACOM/奥莱卡,38
##Ordro/欧达,39
##MPGIO,40
##BoQy/宝淇,41
##Pamiel/拍美乐,42
##SAST/先科,43
##BDLong/邦德龙,44
##OIGIOO/德浦,45
##Hasselblad/哈苏,46
##Polaroid/宝丽来,47
##rochy,48
##FUGN/富京,49
##清华紫光,50
##Haier/海尔,51
##GE/通用电气,52
##SEAGULL/海鸥,53
##Phenix/凤凰,54
##amkov,55
价格区间
##0-800元,56
##800-1200元,57
##1200-2000元,58
##2000-3000元,59
##3000元以上,60
适用场景
##旅游便携,61
##家用,62
##轻薄时尚,63
##专业旗舰,64
##女性市场,65
##个性潮流,66
有效像素
##2000万以上,67
##1600-2000万,68
##1200-1400万,69
##1400-1600万,70
##1000万及以下,71
##1000-1200万,72
##约2010万,73
光学变焦
##35倍,74
##50倍,75
##5倍,76
##30倍,77
##10倍,78
##4倍,79
##3倍,80
##定焦,81
##12.5倍,82
##12倍,83
##20倍,84
##8倍,85
##18倍,86
##16倍,87
##21倍,88
##15倍,89
##26倍,90
##24倍,91
##6倍,92
##3.6倍,93
##7倍,94
##14倍,95
##42倍,96
##3.8倍,97
##可更换镜头,98
##2.5倍,99
##4.6倍,100
##2倍以下,101
##2倍,102
##3.4倍,103
##4.2倍,104
上市时间
##2004年,105
##2005年,106
##2006年,107
##2007年,108
##2008年,109
##2009年,110
##2010年,111
##2011年,112
##2012年,113
##2013年,114
##2004年以前,115
##2014年,116
感光元件类型
##CMOS,117
##CCD,118
##Live
MOS,119
传感器尺寸
##1/1.7英寸,120
##1/1.8英寸,121
##1/2.3英寸,122
##1/2.33英寸,123
##1/2.5英寸,124
##1/2.7英寸,125
##1/3.2英寸,126
##2/3英寸,127
##4/3英寸,128
##1/2英寸,129
##1/1.6英寸,130
##23.6mmx15.8mm,131
##2.4英寸,132
特殊功能
##长焦,133
##光学防抖,134
##广角,135
##高清摄像,136
##面部优先,137
##微距,138
##触摸屏,139
##手动挡,140
##旋转液晶屏,141
##防水,142
##笑脸快门,143
##防摔,144
##防冻,145
##支持外接闪光灯,146
##无特殊功能,147
##支持RAW格式文件,148
##防尘,149
##支持GPS功能,150
防抖性能
##光学防抖,134
##电子防抖,151
##不防抖,152
##双重防抖,153
##多重防抖,154
$n = 0;
echo preg_replace_callback('/.+$/m', function($m) use ($k, &$n) {
$r = preg_replace("/$k/", ',' . (++$n), $m[0]);
if($m[0] == $r) $n = 0;
return $r;
}, $s);
【filed】:
品牌
,1=>"Canon/佳能"
,2=>"Sony/索尼"
,3=>"Casio/卡西欧"
,4=>"Fujifilm/富士"
,5=>"Nikon/尼康"
,6=>"Panasonic/松下"
,7=>"Samsung/三星"
,8=>"Olympus/奥林巴斯"
,9=>"Kodak/柯达"
,10=>"Aigo/爱国者"
,11=>"Benq/明基"
,12=>"Ricoh/理光"
,13=>"Pentax/宾得"
,14=>"Disney/迪士尼"
,15=>"Sanyo/三洋"
,16=>"Sigma/适马"
,17=>"Leica/徕卡"
,18=>"HP/惠普"
,19=>"索爱"
,20=>"Fujitsu/富士通"
,21=>"Praktica/柏卡"
,22=>"Hnsat/亨思特"
,23=>"尼柯"
,24=>"宝达"
,25=>"酷彩王"
,26=>"TCL"
,27=>"禄莱"
,28=>"德之杰"
,29=>"广博"
,30=>"RICH/莱彩"
,31=>"Hello Kitty"
,32=>"学者"
,33=>"Creative/创新"
,34=>"英耐特"
,35=>"Advanced Plus/爱得门斯"
,36=>"JWD/京华"
,37=>"digimaster"
,38=>"ORACOM/奥莱卡"
,39=>"Ordro/欧达"
,40=>"MPGIO"
,41=>"BoQy/宝淇"
,42=>"Pamiel/拍美乐"
,43=>"SAST/先科"
,44=>"BDLong/邦德龙"
,45=>"OIGIOO/德浦"
,46=>"Hasselblad/哈苏"
,47=>"Polaroid/宝丽来"
,48=>"rochy"
,49=>"FUGN/富京"
,50=>"清华紫光"
,51=>"Haier/海尔"
,52=>"GE/通用电气"
,53=>"SEAGULL/海鸥"
,54=>"Phenix/凤凰"
,55=>"amkov"价格区间
,1=>"0-800元"
,2=>"800-1200元"
,3=>"1200-2000元"
,4=>"2000-3000元"
,5=>"3000元以上"适用场景
,1=>"旅游便携"
,2=>"家用"
,3=>"轻薄时尚"
,4=>"专业旗舰"
,5=>"女性市场"
,6=>"个性潮流"有效像素
,1=>"2000万以上"
,2=>"1600-2000万"
,3=>"1200-1400万"
,4=>"1400-1600万"
,5=>"1000万及以下"
,6=>"1000-1200万"
,7=>"约2010万"光学变焦
,1=>"35倍"
,2=>"50倍"
,3=>"5倍"
,4=>"30倍"
,5=>"10倍"
,6=>"4倍"
,7=>"3倍"
,8=>"定焦"
,9=>"12.5倍"
,10=>"12倍"
,11=>"20倍"
,12=>"8倍"
,13=>"18倍"
,14=>"16倍"
,15=>"21倍"
,16=>"15倍"
,17=>"26倍"
,18=>"24倍"
,19=>"6倍"
,20=>"3.6倍"
,21=>"7倍"
,22=>"14倍"
,23=>"42倍"
,24=>"3.8倍"
,25=>"可更换镜头"
,26=>"2.5倍"
,27=>"4.6倍"
,28=>"2倍以下"
,29=>"2倍"
,30=>"3.4倍"
,31=>"4.2倍"上市时间
,1=>"2004年"
,2=>"2005年"
,3=>"2006年"
,4=>"2007年"
,5=>"2008年"
,6=>"2009年"
,7=>"2010年"
,8=>"2011年"
,9=>"2012年"
,10=>"2013年"
,11=>"2004年以前"
,12=>"2014年"感光元件类型
,1=>"CMOS"
,2=>"CCD"
,3=>"Live MOS"传感器尺寸
,1=>"1/1.7英寸"
,2=>"1/1.8英寸"
,3=>"1/2.3英寸"
,4=>"1/2.33英寸"
,5=>"1/2.5英寸"
,6=>"1/2.7英寸"
,7=>"1/3.2英寸"
,8=>"2/3英寸"
,9=>"4/3英寸"
,10=>"1/2英寸"
,11=>"1/1.6英寸"
,12=>"23.6mmx15.8mm"
,13=>"2.4英寸"特殊功能
,1=>"长焦"
,2=>"光学防抖"
,3=>"广角"
,4=>"高清摄像"
,5=>"面部优先"
,6=>"微距"
,7=>"触摸屏"
,8=>"手动挡"
,9=>"旋转液晶屏"
,10=>"防水"
,11=>"笑脸快门"
,12=>"防摔"
,13=>"防冻"
,14=>"支持外接闪光灯"
,15=>"无特殊功能"
,16=>"支持RAW格式文件"
,17=>"防尘"
,18=>"支持GPS功能"防抖性能
,1=>"光学防抖"
,2=>"电子防抖"
,3=>"不防抖"
,4=>"双重防抖"
,5=>"多重防抖"【listNtitle】:
品牌
##Canon/佳能,1
##Sony/索尼,2
##Casio/卡西欧,3
##Fujifilm/富士,4
##Nikon/尼康,5
##Panasonic/松下,6
##Samsung/三星,7
##Olympus/奥林巴斯,8
##Kodak/柯达,9
##Aigo/爱国者,10
##Benq/明基,11
##Ricoh/理光,12
##Pentax/宾得,13
##Disney/迪士尼,14
##Sanyo/三洋,15
##Sigma/适马,16
##Leica/徕卡,17
##HP/惠普,18
##索爱,19
##Fujitsu/富士通,20
##Praktica/柏卡,21
##Hnsat/亨思特,22
##尼柯,23
##宝达,24
##酷彩王,25
##TCL,26
##禄莱,27
##德之杰,28
##广博,29
##RICH/莱彩,30
##Hello Kitty,31
##学者,32
##Creative/创新,33
##英耐特,34
##Advanced Plus/爱得门斯,35
##JWD/京华,36
##digimaster,37
##ORACOM/奥莱卡,38
##Ordro/欧达,39
##MPGIO,40
##BoQy/宝淇,41
##Pamiel/拍美乐,42
##SAST/先科,43
##BDLong/邦德龙,44
##OIGIOO/德浦,45
##Hasselblad/哈苏,46
##Polaroid/宝丽来,47
##rochy,48
##FUGN/富京,49
##清华紫光,50
##Haier/海尔,51
##GE/通用电气,52
##SEAGULL/海鸥,53
##Phenix/凤凰,54
##amkov,55价格区间
##0-800元,1
##800-1200元,2
##1200-2000元,3
##2000-3000元,4
##3000元以上,5适用场景
##旅游便携,1
##家用,2
##轻薄时尚,3
##专业旗舰,4
##女性市场,5
##个性潮流,6有效像素
##2000万以上,1
##1600-2000万,2
##1200-1400万,3
##1400-1600万,4
##1000万及以下,5
##1000-1200万,6
##约2010万,7光学变焦
##35倍,1
##50倍,2
##5倍,3
##30倍,4
##10倍,5
##4倍,6
##3倍,7
##定焦,8
##12.5倍,9
##12倍,10
##20倍,11
##8倍,12
##18倍,13
##16倍,14
##21倍,15
##15倍,16
##26倍,17
##24倍,18
##6倍,19
##3.6倍,20
##7倍,21
##14倍,22
##42倍,23
##3.8倍,24
##可更换镜头,25
##2.5倍,26
##4.6倍,27
##2倍以下,28
##2倍,29
##3.4倍,30
##4.2倍,31上市时间
##2004年,1
##2005年,2
##2006年,3
##2007年,4
##2008年,5
##2009年,6
##2010年,7
##2011年,8
##2012年,9
##2013年,10
##2004年以前,11
##2014年,12感光元件类型
##CMOS,1
##CCD,2
##Live MOS,3传感器尺寸
##1/1.7英寸,1
##1/1.8英寸,2
##1/2.3英寸,3
##1/2.33英寸,4
##1/2.5英寸,5
##1/2.7英寸,6
##1/3.2英寸,7
##2/3英寸,8
##4/3英寸,9
##1/2英寸,10
##1/1.6英寸,11
##23.6mmx15.8mm,12
##2.4英寸,13特殊功能
##长焦,1
##光学防抖,2
##广角,3
##高清摄像,4
##面部优先,5
##微距,6
##触摸屏,7
##手动挡,8
##旋转液晶屏,9
##防水,10
##笑脸快门,11
##防摔,12
##防冻,13
##支持外接闪光灯,14
##无特殊功能,15
##支持RAW格式文件,16
##防尘,17
##支持GPS功能,18防抖性能
##光学防抖,1
##电子防抖,2
##不防抖,3
##双重防抖,4
##多重防抖,5