【发布时间】:2016-09-08 02:39:09
【问题描述】:
我有一串这样的-
$str = "field1.id as field1,
DATE_SUB(field2, INTERVAL (DAYOFMONTH(field2)-1) DAY) as field2,
field3.name as field3";
需要将explode 放入数组中,, 如下:
$requiredArray = array(
0 => field1.id as field1,
1 => DATE_SUB(field2, INTERVAL (DAYOFMONTH(field2)-1) DAY) as field2
2 => field3.name as field3
);
我尝试过爆炸,但它不起作用:
$requiredArray = explode(', ', $str);
// doesn't work as "DATE_SUB(field2, INTERVAL ..." also gets exploded
有什么技巧/想法吗?
【问题讨论】:
-
您需要使用 preg_split 来测试您的逗号是否在大括号内,如果不是则仅拆分。或者类似
preg_match_all('#\(.*?\)|[^,]+#', $str, $matches); var_dump($matches[0]); -
你需要正则表达式。
-
不错的线索,谢谢,我会试一试。 +1
-
@MarkBaker 暂时不行 :(.
-
使用正则表达式的原则应该仍然适用,只是获得正确的正则表达式是个问题;我会看看我能找到什么