排除具有相同名称的项目

时间:2018-04-24 12:03:03

标签: php

我编写了一个脚本,根据用户下载的country_code匹配来自数据库的相应记录(奖励)。一切都有效,直到有两个具有相同名称和不同国家/地区字段的记录。我希望基于用户代码的这些重复项是互斥的,但我两天都无法实现这种效果。

让我们说用户的country_code是" US" 有两个匹配的记录

[描述] ="提供1" [国家] ="美国,DE"

[描述] ="提供1" [countries] =" All"

如果用户的country_code位于国家/地区字段中,我希望不会显示所有内容。如果它与country_code不匹配,我希望显示所有报价。此外,应为每个country_code显示所有带有All标记且没有重复项的商品。

我怎样才能做到这一点?

<?php

    function getRewards($dbh) {
        $stmt = $dbh->prepare("SELECT `description`, `countries` FROM `sample_table`");
        $stmt->execute();
        $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
        return $result;
    }

    function checkCountry($data, $user) {
        $countries = explode(",", $data);
        if(in_array($user["country_code"], $countries) || in_array("All", $countries)) {
            return true;
        } else {
            return false;
        }
    }
    // for testing i get this value from database
    $user["country_code"] = "US";
    foreach(getRewards($dbh) as $reward) {
        if(checkCountry($reward["countries"], $user)) {
            echo $reward["description"];
        } else {
            continue;
        }
    }
?>

0 个答案:

没有答案