我有一系列排除的类别ID。我试图从数据库中获取数据并根据此数组过滤产品。
因此,如果排除第1级,则会自动排除第2级和第3级的产品。目前我正在这样做:
$excludedCategories = ['1000', '100011'];
while ($row = $result->fetch_assoc()) {
$category = "1". $row['category'] . $row['sub_category'] . $row['category_id'];
foreach ($excludeCategories as $exCategory) {
if( substr($category, 0, strlen($exCategory)) === $exCategory ) {
echo 'Category'. $category . " matches " . $exCategory . "<br>";
continue;
}
}
}
..但是如果没有运行第二个循环,有没有更好的方法呢?
答案 0 :(得分:3)
如果你内疚$excludedCategories
为preg_match
制作模式,则不需要循环。
$excludedCategories = ['1000', '100011'];
while ($row = $result->fetch_assoc()) {
$category = "1". $row['category'] . $row['sub_category'] . $row['category_id'];
if( preg_match("/^".implode("|",$excludedCategories)."/", $category)) {
echo "Category: $category Excluded <br>";
}
}