如何在foreach循环中获得唯一的值

时间:2019-02-28 13:06:15

标签: php mysql

我有一张桌子,上面有一些产品,我想从中获得唯一的值。我有一个数据库,其中有诸如Kia Picanto, Toyota Corolla, Kia Sportage, BMW Series 6, BMW Series 7之类的值。现在我想显示诸如Kia, Toyota, BMW之类的值。我正在尝试通过Internet进行搜索,但是没有找到任何可能的解决方案,所以这就是为什么我要在此处发布问题以获取解决方案。我正在使用

SQL:

$sql = $db_con->prepare("SELECT `post_title` FROM `panel_product` WHERE `product_type` LIKE '%vehicle%' ORDER BY `post_title`");
$sql->execute();
$menufectures = $sql->fetchAll();
if (count($menufectures) > 0) {
    foreach ($menufectures as $key) {
        $brand = explode(' ', $key['post_title']);
        $brand = $brand[0];
        echo $brand.'<br />';
    }
}

但是我得到Kia, Kia, Toyota, BMW, BMW。如果您有任何解决方案,请告诉我。

谢谢

1 个答案:

答案 0 :(得分:2)

您可以将显示的内容存储在数组中,以便在迭代时检查:

// Initialize a new variable
$brands = [];

foreach ($menufectures as $key) {
    $brand = explode(' ', $key['post_title']);
    $brand = $brand[0];

    if (!isset($brands[$brand])) {
        // It doesn't exist in the array so echo it and add it to the array
        $brands[$brand] = true;
        echo $brand.'<br />';
    }
}