我有一个返回字符串的循环,如下所示......
我有正则表达式来获取第一组引号中的内容。
$shipping_name = preg_match('/"(.+?)"/', $shipp_option, $matches);
但我也希望在第二组引号中输入数字,我该怎么做?
由于
答案 0 :(得分:3)
explode()
;
分隔符上的字符串,然后是unserialize()
它们:
$string = 's:20:"D111 Free Delivery**";s:4:"0.00"';
$array = explode( ';', $string);
list( $str, $number) = array_map( 'unserialize', $array);
echo $str . ' ' . $number;
您可以在this demo中看到它,对于您的三个测试用例,输出:
D111 Free Delivery**
0.00
D111 3/5 day delivery service***
6.99
D111 2/3 day delivery service***
8.99
编辑以显示如何捕获自己变量中的每个字段。
答案 1 :(得分:0)
爆炸!!!!
//inside your loop
$halves = explode(';', $shipp_option);
$first_half = explode(':', $halves[0]);
$second_half = explode(':', $halves[1]);
$shipping_name = trim($first_half[2], '"');//eg. D111 Free Delivery**
$shipping_price = trim($second_half[2], '"');//eg. 0.00
//end inside your loop
或者......快一点:
//inside your loop
$shipp_arr = explode(';:', $shipp_option);
$shipping_name = trim($shipp_arr[2], '"');//eg. D111 Free Delivery**
$shipping_price = trim($shipp_arr[5], '"');//eg. 0.00
//end inside your loop