我想从文本中搜索一个数字DB
并打印出来。数字是产品代码,从 4 到 6 位不等。
例子:
aaaaa 1234 aaaa
aaaaa 123456 aaaaa
aaaaa 12345 aaaaa
我得到的是一个与 5 个数字完全匹配的数组,但不变化也不打印:
$string = $sql['products_description'];
preg_match_all('/(?<![0-9])[0-9]{5}(?![0-9])/', $string, $match);
for ($i=0; $i<10; $i++) {
echo $match[$i];
echo '<br>';
}
有什么帮助吗?
编辑:我得到了这个密切合作:
$string = $sql['products_description'];
preg_match_all('#\d{4,6}#', $string, $matches);
foreach ($matches as $match) {
print_r($match);
}
但返回类似:
数组([0] => 1234 [1] => 123456 [2] => 12345)
我纯粹需要它们(而不是在数组中),因为我以后必须单独使用每个数字。在这种情况下,如何提取每个元素并打印出来?
解决方案:
$var = array();
preg_match_all('#\d{4,6}#', $string, $matches);
foreach ($matches as $match) {
$var[] = $match;
}
for ($i=0; $i<=count($matches[0]); $i++) {
for ($j=0; $j<=count($matches[0]); $j++) {
if (($var[$i][$j]) != '') {
print_r($var[$i][$j]);
echo '<br>';
}
}
}