将mysql结果作为唯一数组获取

时间:2012-10-02 14:15:01

标签: php arrays

如果我有以下数据库行(id,url,type)

id |  url  | type

1  |google | go
2  |yahoo  | go
3  |google | go
4  |bing   | go

现在我想调用所有类型的ur并将结果输入数组

$query = "select * from my_table Where type='go'";
$result = mysql_query($query) or die(mysql_error());
while($aax = mysql_fetch_array($result)){

$result_array[] = $aax[url];
$result_array = array_unique($result_array);
print_r($result_array);

}

结果数组将重复4次!因为我们有4个数据库结果

Array
(
    [0] => google
)
Array
(
    [0] => google
    [1] => yahoo
)
Array
(
    [0] => google
    [1] => yahoo
)
Array
(
    [0] => google
    [1] => yahoo
    [3] => bing
)

我的问题

如何在不重复的情况下获取生成的数组并获得所有网址 所以我想要的结果如下

 Array
(
    [0] => google
    [1] => yahoo
    [3] => bing
)

〜任何帮助..谢谢

2 个答案:

答案 0 :(得分:4)

在查询中使用distinct函数,而不只是构建一个普通数组:

$query = "select distinct url from my_table Where type='go'";
$result = mysql_query($query) or die(mysql_error());

$result_array = array();

while($aax = mysql_fetch_array($result)){
  $result_array[] = $aax['url'];
}
print_r($result_array);

注意:编辑了源代码中的一些小错误。

答案 1 :(得分:1)

$result_array = array_merge($result_array, $aax[url]);