【发布时间】:2014-11-25 19:06:26
【问题描述】:
下面的代码搜索一个很长的查询结果“body”并提取出带引号的数字。我想将这些数字插入到单列引用表中。当它是一个 preg_match 时,我有这个工作,但是 preg_match all 已经抛出了一个扳手,它继续吠叫数组字符串转换。每个“body”结果都可以有多个数字结果,我相信这会导致多个数组。谁能帮我把这个插入?
$textToReplace = mysqli_query($conn, "SELECT body from T1");
while($row2 = $textToReplace->fetch_array()){
$body = $row2["body"];
preg_match_all('#"\d+"#', $body, $matches);
foreach($matches as $match) {
$id=$match;
var_dump($id);
// $sql = mysqli_query($conn, "INSERT into T2 VALUES($id)");
}
}
这是 $id 上 var_dump 的结果的 sn-p:
array (size=1)
0 => string '"10064905"' (length=10)
array (size=3)
0 => string '"10064788"' (length=10)
1 => string '"10064797"' (length=10)
2 => string '"10064807"' (length=10)
array (size=1)
0 => string '"10063833"' (length=10)
array (size=1)
0 => string '"10063824"' (length=10)
array (size=2)
0 => string '"10063805"' (length=10)
1 => string '"10063796"' (length=10)
【问题讨论】:
-
preg_match_all()返回一个二维数组。第一个元素是正则表达式的所有匹配项,其余元素是正则表达式中每个捕获组的匹配项。
标签: php mysql arrays preg-match-all