从更多数组中选择唯一值

时间:2012-08-02 18:18:43

标签: php mysql sql

我有以下代码:

$get_countries = "SELECT country FROM blahs WHERE country IS NOT NULL ORDER BY country";
$data_get_countries = mysqli_query($dbc, $get_countries);

while ($row_get_countries = mysqli_fetch_array($data_get_countries)) {
    $country_tabs = array_unique($row_get_countries);
    foreach ($country_tabs as $country_tab) {
        echo '<div>' . $country_tab . '</div>';
        var_dump($country_tab);
        var_dump($country_tabs);

    }
}

现在var_dump($ country_tab)输出:

string 'DE' (length=2)
string 'GB' (length=2)
string 'SE' (length=2)
string 'US' (length=2)
string 'US' (length=2)
string 'US' (length=2)
string 'US' (length=2)

和var_dump($ country_tabs):

array
    0 => string 'DE' (length=2)
array
    0 => string 'GB' (length=2)
array
    0 => string 'SE' (length=2)
array
    0 => string 'US' (length=2)
array
    0 => string 'US' (length=2)
array
    0 => string 'US' (length=2)
array
    0 => string 'US' (length=2)

我想要实现的是让我的代码不显示相同的国家/地区! array_unique($ country_tabs)不起作用,因为输出中有更多数组。

4 个答案:

答案 0 :(得分:3)

使用SELECT DISTINCT country FROM blahs WHERE country IS NOT NULL ORDER BY country

它将删除每个重复的值。

答案 1 :(得分:2)

最好在数据库查询中获取唯一值,如下所示:

SELECT DISTINCT country FROM blahs WHERE country IS NOT NULL ORDER BY country

请注意,我添加了DISTINCT关键字来执行您要执行的操作。

答案 2 :(得分:2)

修改您的查询以仅获取唯一的国家/地区:

$get_countries = "SELECT DISTINCT country FROM blahs WHERE country IS NOT NULL ORDER BY country";

答案 3 :(得分:2)

使用mysql查询获取唯一的国家/地区:

SELECT country 
FROM blahs 
WHERE country IS NOT NULL
GROUP BY country
ORDER BY country

这是更优化的方式!