からテキストで数字を検索して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>';
}
}
}