标签: array-unique

array_unique然后重新编号键

可能重复:
重新索引数字数组键

我有一个数组如下

Array
(
    [0] => 15/11/2012 - 18/11/2012
    [1] => 15/11/2012 - 18/11/2012
    [2] => 15/11/2012 - 18/11/2012
    [3] => 15/11/2012 - 18/11/2012
    [4] => 19/12/2012 - 24/12/2012
    [5] => 24/12/2012 - 01/01/2013
    [6] => 24/12/2012 - 01/01/2013
    [7] => 16/01/2013 - 01/02/2013
)
Run Code Online (Sandbox Code Playgroud)

我正在使用array_unique来删除给我的重复项

    Array
(
    [0] => 15/11/2012 - 18/11/2012
    [4] => 19/12/2012 - 24/12/2012
    [5] => 24/12/2012 - 01/01/2013
    [7] => 16/01/2013 - 01/02/2013
)
Run Code Online (Sandbox Code Playgroud)

如何更改密钥以使其连续 - 如下所示

    Array
(
    [0] => 15/11/2012 - 18/11/2012 …
Run Code Online (Sandbox Code Playgroud)

php array-unique

55
推荐指数
1
解决办法
3万
查看次数

array_unique vs array_flip

如果我有一个有符号整数数组,例如:

Array
(
    [0] => -3
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 3
)
Run Code Online (Sandbox Code Playgroud)

为了获得独特的价值,我本能地使用,array_unique但经过考虑后,我可以执行array_flip两次具有相同效果,我认为会更快?

array_unique O(n log n),因为它使用的排序操作

array_flip 上)

我的假设是否正确?

更新/示例:

$intArray1 = array(-4,1,2,3);
print_r($intArray1);
$intArray1 = array_flip($intArray1);
print_r($intArray1);
$intArray1 = array_flip($intArray1);
print_r($intArray1);

Array
(
    [0] => -3
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 3
)
Array
(
    [-3] => 0
    [1] => 1
    [2] => 2
    [3] => 4
)
Array
(
    [0] …
Run Code Online (Sandbox Code Playgroud)

php big-o array-unique array-flip

28
推荐指数
2
解决办法
9406
查看次数

从数组中删除重复的项目

我使用下面的代码行循环遍历数据库中的表:

$items_thread = $connection -> fetch_all($sql);
Run Code Online (Sandbox Code Playgroud)

如果我打印出阵列:

print_r($items_thread);
Run Code Online (Sandbox Code Playgroud)

我会得到这个:

Array
(
    [0] => Array
        (
            [RecipientID] => 3
            [RecipientScreenname] => Tom L
            [RecipientFirstname] => Thomas
            [RecipientEmail] => info@xx.com
        )

    [1] => Array
        (
            [RecipientID] => 3
            [RecipientScreenname] => Tom L
            [RecipientFirstname] => Thomas
            [RecipientEmail] => info@xx.com
        )

    [2] => Array
        (
            [RecipientID] => 1
            [RecipientScreenname] => Lau T
            [RecipientFirstname] => TK
            [RecipientEmail] => lau@xx.co.uk
        )

)
Run Code Online (Sandbox Code Playgroud)

但我想摆脱数组中的重复项,所以我使用 array_unique

print_r(array_unique($items_thread));
Run Code Online (Sandbox Code Playgroud)

我得到了下面的奇怪结果,这不是我想要的:

Array
(
    [0] => Array
        (
            [RecipientID] => 3
            [RecipientScreenname] …
Run Code Online (Sandbox Code Playgroud)

php arrays duplicates array-unique

25
推荐指数
2
解决办法
7万
查看次数

如何在数组数组上使用array_unique?

我有一个阵列

Array(
[0] => Array
    (
        [0] => 33
        [user_id] => 33
        [1] => 3
        [frame_id] => 3
    )

[1] => Array
    (
        [0] => 33
        [user_id] => 33
        [1] => 3
        [frame_id] => 3
    )

[2] => Array
    (
        [0] => 33
        [user_id] => 33
        [1] => 8
        [frame_id] => 8
    )

[3] => Array
    (
        [0] => 33
        [user_id] => 33
        [1] => 3
        [frame_id] => 3
    )

[4] => Array
    (
        [0] => 33
        [user_id] => 33 …
Run Code Online (Sandbox Code Playgroud)

php arrays array-unique

18
推荐指数
2
解决办法
1万
查看次数

array_unique用于数组内的数组

我需要一个类似于array_unique数组内部数组的函数.

案例 - 应该相等,但输出"不相等":

<?php
$arr=array(array('a',1),array('a',2));
$arr2=array_unique($arr);
if($arr2==$arr){
  echo "equal";
}
else{
  echo "not equal";
}
?>
Run Code Online (Sandbox Code Playgroud)

如何更改代码以使输出"相等"?

php associative-array multidimensional-array array-unique

17
推荐指数
1
解决办法
9253
查看次数

从此数组中仅选择唯一的数组值

我有以下变量$ rows:

阵列(

[0] => stdClass Object
    (
        [product_sku] => PCH20
    )

[1] => stdClass Object
    (
        [product_sku] => PCH20
    )

[2] => stdClass Object
    (
        [product_sku] => PCH19
    )

[3] => stdClass Object
    (
        [product_sku] => PCH19
    )
Run Code Online (Sandbox Code Playgroud)

)

我需要创建仅包含唯一值的第二个数组$ second:

阵列(

[0] => stdClass Object
    (
        [product_sku] => PCH20
    )

[1] => stdClass Object
    (
        [product_sku] => PCH19
    )
Run Code Online (Sandbox Code Playgroud)

)

但是当我在$ rows上运行array_unique时,我会收到:

可捕获的致命错误:类stdClass的对象无法在第191行转换为字符串

php arrays array-unique

13
推荐指数
3
解决办法
4万
查看次数

在laravel雄辩的集合上的Array_unique

不确定这是否可行,但我试图在我拥有的项目集合上运行array_unique,以删除重复项.虽然我不能让它工作.

我的控制器逻辑:

    // init models
    $jobs = Job::search();
    $countries = $jobs->get()->map(function( $job ) {

        return $job->country;
    });
    $countries = array_unique( $countries->toArray() );
Run Code Online (Sandbox Code Playgroud)

虽然这会得到"数组到字符串转换"错误

php array-unique laravel eloquent laravel-4

13
推荐指数
3
解决办法
3万
查看次数

什么是更好的使用:in_array或array_unique?

我怀疑使用什么:

foreach(){
    // .....

    if(!in_array($view, $this->_views[$condition]))
        array_push($this->_views[$condition], $view);

    // ....
}
Run Code Online (Sandbox Code Playgroud)

要么

foreach(){
    // .....

    array_push($this->_views[$condition], $view);

    // ....
}

$this->_views[$condition] = array_unique($this->_views[$condition]);
Run Code Online (Sandbox Code Playgroud)

UPDATE

目标是获得一系列独特的价值观.这可以通过每次检查值是否已存在in_array或每次添加所有值或最终使用时来完成array_unique.那么这两种方式之间有什么重大区别吗?

php arrays array-unique

12
推荐指数
1
解决办法
2340
查看次数

为什么array_unique会对值进行排序?

这是我之前的一个问题:array_unique vs array_flip - 这表明它array_flip(array_flip())array_unique()处理简单的字符串和整数要快得多.

我想知道的是为什么要array_unique()创建数组的副本,对其进行排序然后删除重复项

这两种功能的来源都可以在这里找到.

提前致谢!

php sorting array-unique

9
推荐指数
1
解决办法
1999
查看次数

array_merge&array_unique

在PHP中是否有一个数组函数以某种方式执行array_merge,比较,忽略键?我认为这array_unique(array_merge($a, $b))有效,但我相信必须有一个更好的方法来做到这一点.

例如.

$a = array(0 => 0, 1 => 1, 2 => 2);
$b = array(0 => 2, 1 => 3, 2 => 4);
Run Code Online (Sandbox Code Playgroud)

导致:

$ab = array(0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4);
Run Code Online (Sandbox Code Playgroud)

请注意,我不关心键$ab,但是如果它们是从0开始提升它们会很好count($ab)-1.

php arrays array-merge array-unique

8
推荐指数
1
解决办法
3万
查看次数