我有以下代码:
$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)不起作用,因为输出中有更多数组。
答案 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
这是更优化的方式!