源串:
[['34609889', '4', '350000,450000,460000,540000,610000,620000,630000,640000,650000', '15.0', '0.0'],['34609888', '4', '130000,140000,150000,210000,220000,230000,340000,360000,370000,410000,420000,430000,440000,500000,510000,520000,530000', '12.0', '0.0'],['34609887', '4', '710000,810000,820000', '90.0', '10.0'],['34609886', '4', '110000,120000,310000,320000,330000', '6.0', '0.0'],['34609885', '4', '1', '12.0', '0.0']]要提取的数是包含610000的那个方括号中的倒数第二个,请问有什么方法?
先谢谢各位了
[['34609889', '4', '350000,450000,460000,540000,610000,620000,630000,640000,650000', '15.0', '0.0'],['34609888', '4', '130000,140000,150000,210000,220000,230000,340000,360000,370000,410000,420000,430000,440000,500000,510000,520000,530000', '12.0', '0.0'],['34609887', '4', '710000,810000,820000', '90.0', '10.0'],['34609886', '4', '110000,120000,310000,320000,330000', '6.0', '0.0'],['34609885', '4', '1', '12.0', '0.0']]要提取的数是包含610000的那个方括号中的倒数第二个,请问有什么方法?
先谢谢各位了
$str="[['34609889', '4', '350000,450000,460000,540000,610000,620000,630000,640000,650000', '15.0', '0.0'],['34609888', '4', '130000,140000,150000,210000,220000,230000,340000,360000,370000,410000,420000,430000,440000,500000,510000,520000,530000', '12.0', '0.0'],['34609887', '4', '710000,810000,820000', '90.0', '10.0'],['34609886', '4', '110000,120000,310000,320000,330000', '6.0', '0.0'],['34609885', '4', '1', '12.0', '0.0']]";
$arr=explode(',',$str);
$result=trim(str_replace("'","",$arr[11]));
echo $result;
?>
然后循环比对
[['34609889', '4', '350000,450000,460000,540000,610000,620000,630000,640000,650000', '15.0', '0.0'],['34609888', '4', '130000,140000,150000,210000,220000,230000,340000,360000,370000,410000,420000,430000,440000,500000,510000,520000,530000', '12.0', '0.0'],['34609887', '4', '710000,810000,820000', '90.0', '10.0'],['34609886', '4', '110000,120000,310000,320000,330000', '6.0', '0.0'],['34609885', '4', '1', '12.0', '0.0']]
TEXT;preg_match_all('/\[([^\[]+?)\]/', $s, $r);foreach($r[1] as $r) {
if(in_array(610000, $a = split(',', $r))) {
echo current(array_slice($a, -2, 1));
break;
}
}
preg_match("/\[[\s,'0-9]+610000[\.\s\,\'0-9]+\]/",$str,$match);echo(str_replace('\'','',current(array_slice(explode(',',$match[0]),-2,1))));
结果15.0