从多个数组到一个数组的不同值

时间:2016-06-02 10:59:20

标签: php arrays distinct

我正在开发我的PHP项目,我需要在数据库中列出所有类型但是唯一的。请帮帮我。

$q_cat = "SELECT DISTINCT `genres` FROM `movie_meta`";

$ex = mysqli_query($con, $q_cat);
$array = array();
while ($res=mysqli_fetch_assoc($ex)) {
    foreach($res as $value) {
        $x = rtrim($value,',');
        $array = explode(',', $x);

    }
    print_r($array);    
}

我使用上面的代码在输出中获取此数组:

Array
    (
        [0] => Action
        [1] => Crime
        [2] => Thriller
    )
    Array
    (
        [0] => Action
        [1] => Adventure
        [2] => Comedy
    )
    Array
    (
        [0] => Crime
        [1] => Drama
        [2] => Mystery
    )
    Array
    (
        [0] => Action
        [1] => Comedy
        [2] => Crime
    )
    Array
    (
        [0] => Action
        [1] => Comedy
        [2] => Science Fiction
    )
    Array
    (
        [0] => Action
        [1] => Adventure
        [2] => Fantasy
    )
    Array
    (
        [0] => Action
        [1] => Adventure
        [2] => Science Fiction
    )
    Array
    (
        [0] => Comedy
        [1] => Crime
        [2] => Drama
    )
    Array
    (
        [0] => Action
        [1] => Adventure
        [2] => Thriller
    )
    Array
    (
        [0] => Drama
        [1] => Sport
    )
    Array
    (
        [0] => Comedy
    )
    Array
    (
        [0] => Horror
        [1] => Thriller
    )
    Array
    (
        [0] => Biography
        [1] => Comedy
        [2] => Drama
    )
    Array
    (
        [0] => Action
        [1] => Thriller
    )
    Array
    (
        [0] => Action
        [1] => Science Fiction
        [2] => Thriller
    )
    Array
    (
        [0] => Adventure
        [1] => Drama
        [2] => Thriller
    )
    Array
    (
        [0] => Drama
        [1] => History
        [2] => Thriller
    )
    Array
    (
        [0] => Animation
        [1] => Comedy
        [2] => Family
    )
    Array
    (
        [0] => Action
        [1] => Comedy
    )
    Array
    (
        [0] => Adventure
        [1] => Animation
        [2] => Comedy
    )
    Array
    (
        [0] => Action
        [1] => Drama
        [2] => Thriller
    )
    Array
    (
        [0] => Action
        [1] => Adventure
        [2] => Biography
    )
    Array
    (
        [0] => Horror
        [1] => Science Fiction
        [2] => Thriller
    )
    Array
    (
        [0] => Action
        [1] => Adventure
        [2] => Animation
    )
    Array
    (
        [0] => Adventure
        [1] => Biography
        [2] => Drama
    )
    Array
    (
        [0] => Adventure
        [1] => Comedy
        [2] => Family
    )
    Array
    (
        [0] => Drama
        [1] => Mystery
        [2] => Thriller
    )
    Array
    (
        [0] => Adventure
        [1] => Family
        [2] => Fantasy
    )
    Array
    (
        [0] => Comedy
        [1] => Drama
        [2] => Romance
    )
    Array
    (
        [0] => 
    )
    Array
    (
        [0] => Adventure
        [1] => Drama
        [2] => Science Fiction
    )
    Array
    (
        [0] => Adventure
        [1] => Science Fiction
    )
    Array
    (
        [0] => Action
        [1] => Crime
        [2] => Drama
    )
    Array
    (
        [0] => Comedy
        [1] => Drama
    )
    Array
    (
        [0] => Science Fiction
        [1] => Thriller
    )

我想要这样的输出。

Array
        (
            [0] => Action
            [1] => Crime
            [2] => Thriller
            [3] => Adventure
            [4] => Comedy
            [5] => Drama
            [6] => ......
            [7] => ....
        )

我的意思是将所有数组中的所有不同值组合成一个数组。

3 个答案:

答案 0 :(得分:1)

使用array_merge()功能。它将在一个

中合并两个或多个数组

http://php.net/manual/en/function.array-merge.php

答案 1 :(得分:1)

您需要为所有唯一数据创建单个数组,将数据存储在数组中,并将值作为获取唯一值的关键。最后使用array_values函数来获取结果值。

$array = array();
while ($res=mysqli_fetch_assoc($ex)) {
    foreach($res as $value) {
        $x = rtrim($value,',');
        foreach(explode(',', $x) as $val){
            $array[$val] = $val;
        }
    }
}
print_r(array_values($array));

答案 2 :(得分:0)

创建关联数组,同时使关联数组重复值将被删除 foreach($array as $value){ $temp[$value]=$value; } 然后使用php函数array_values

删除键
$unique_array= array_values($temp);
print_r($unique_array);

您将获得此输出

Array
(
    [0] => Action
    [1] => Crime
    [2] => Thriller
    [3] => Adventure
    [4] => Comedy
    [5] => Drama
)