PHP array_unique对我的数组不起作用

时间:2013-11-29 07:40:01

标签: php arrays array-unique

我有一个返回如下数组的函数:

Array
(
[0] => Array
    (
        [0] => #fff4f4;
        [1] => fff4f4
    )

[1] => Array
    (
        [0] => #ffffea;
        [1] => ffffea
    )

[2] => Array
    (
        [0] => #ffc;
        [1] => ffc
    )

[3] => Array
    (
        [0] => #ccc;
        [1] => ccc
    )

[4] => Array
    (
        [0] => #eee;
        [1] => eee
    )

[5] => Array
    (
        [0] => #fffff0;
        [1] => fffff0
    )

[6] => Array
    (
        [0] => #ffd;
        [1] => ffd
    )

[7] => Array
    (
        [0] => #ddd;
        [1] => ddd
    )

[8] => Array
    (
        [0] => #ccc;
        [1] => ccc
 [...]

我需要有这样的数组,但只有唯一值。 我试过了:

$result = array_unique($rescss);

连续刻出唯一的整个数组,然后我尝试了

$result = array_unique($rescss[]);

但不起作用。

我怎样才能拥有这样的新数组,但仅限于唯一值

提前致谢

1 个答案:

答案 0 :(得分:1)

只需循环数组并使用哈希数组来标记已存在的值,如下所示:

$unique = array ();

$hash = array ();

foreach ( $rescss as $ele )
{
    //seemed $ele [0] could be the primary key
    $eleKey = $ele [0];

    if (isset ( $hash [$eleKey] ))
        continue;

    $unique [] = $ele;

    $hash [$eleKey] = 1;
}