检查字符串是否以数组值开头

时间:2016-05-13 23:19:23

标签: php

我有一系列排除的类别ID。我试图从数据库中获取数据并根据此数组过滤产品。

  • 1000 类别级别1 ID
  • 的示例
  • 1000001 类别级别2 ID
  • 的示例
  • 1000001021 类别级别3 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;
        }
    }
}

..但是如果没有运行第二个循环,有没有更好的方法呢?

1 个答案:

答案 0 :(得分:3)

如果你内疚$excludedCategoriespreg_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>";
     }
}