我有一个包含以下元素的变量
$value= ' ["1","7.9","12\/01\/2015"] ';
现在我想创建一个数组,它将包含以下值: -
$array[0] = 7.9;
$array[1] = 12/01/2015;
我想要PHP Regex能够以上述方式分离以下元素。 我试过了
$ans = preg_match('/^[0-9,]+$/', $value);
但这不起作用。 Plz帮助做什么。 以上述方式获取数组。
array[0] = 7.9; //amount
array[1]= 12/01/2015; //Date
答案 0 :(得分:3)
您的价值" ["1","7.9","12\/01\/2015"] "
在我看来是一个json编码数组,我使用json_decode
来获得您想要的内容:
$value = ' ["1","7.9","12\/01\/2015"] ';
$array = json_decode(trim($value));//remove leading and trailing spaces
//or as pointed out to me in the comments
$array = json_decode($value);
//remove first element ($array is now [1, 7.9, 12/01/2015]
$result = array_slice($array, 1);
var_dump($result);//array(7.9, 12/01/2015)
这假设值(1,7.9和日期)周围的双引号被正确转义,因为它代表$value
不是有效的字符串。
使用像/[^\/\.,"]+[\.\/][^"\.,]+/
这样的正则表达式也可以,但总而言之,这里不建议这样做。不过,为了完整性:
preg_match_all('/[^\/\.,"]+[\.\/][^"\.,]+/', $value, $matches);
$result = $matches[0];
var_dump($result);