PHP删除数组重复 [英] php remove duplicates from array

查看:159
本文介绍了PHP删除数组重复的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道是否有人可以帮助我,我试图找到一个脚本,将检查我的整个阵列,如果需要删除任何重复,然后以相同的格式吐出的数组。

下面是我的数组的例子(你会看到有一些重复):

 阵列

    [0] =>排列
        (
            [0] => stdClass的对象
                (
                    [报价] => 34
                    [名] => Adrianos披萨&安培;意大利面
                    [图片网址] => sp_adrian.gif
                    [点击网址] => #
                )            [1] => stdClass的对象
                (
                    [报价] => 42
                    [名] =>雷白色莫迪亚勒克
                    [图片网址] => sp_raywhite.gif
                    [点击网址] => http://www.raywhite.com/
                )            [2] => stdClass的对象
                (
                    [报价] => 48
                    [名] =>海滨骨
                    [图片网址] => sp_beachside.gif
                    [点击网址] => http://www.beachsideosteo.com.au/
                )            [3] => stdClass的对象
                (
                    [报价] => 57
                    [名] =>南郊物理治疗中心
                    [图片网址] => sp_sspc.jpg
                    [点击网址] => http://www.sspc.com.au
                )            [4] => stdClass的对象
                (
                    [报价] => 52
                    [名] =>莫迪亚勒克旅游和邮轮
                    [图片网址] => sp_morditravel.jpg
                    [点击网址] => http://www.yellowpages.com.au/vic/mordialloc/mordialloc-travel-cruise-13492525-listing.html
                )            [5] => stdClass的对象
                (
                    [报价] => 37
                    [名] =>莫迪亚勒克酒窖
                    [图片网址] => sp_cellardoor.gif
                    [点击网址] =>
                )            [6] => stdClass的对象
                (
                    [报价] => 53
                    [名] => Carmotive
                    [图片网址] => sp_carmotive.jpg
                    [点击网址] => http://www.carmotive.com.au/
                )        )    [1] =>排列
        (
            [0] => stdClass的对象
                (
                    [报价] => 55
                    [名] => 360South
                    [图片网址] => sp_360.jpg
                    [点击网址] =>
                )            [1] => stdClass的对象
                (
                    [报价] => 40
                    [名] => Ripponlea三菱
                    [图片网址] => sp_mitsubishi.gif
                    [点击网址] =>
                )            [2] => stdClass的对象
                (
                    [报价] => 57
                    [名] =>南郊物理治疗中心
                    [图片网址] => sp_sspc.jpg
                    [点击网址] => http://www.sspc.com.au
                )            [3] => stdClass的对象
                (
                    [报价] => 52
                    [名] =>莫迪亚勒克旅游和邮轮
                    [图片网址] => sp_morditravel.jpg
                    [点击网址] => http://www.yellowpages.com.au/vic/mordialloc/mordialloc-travel-cruise-13492525-listing.html
                )            [4] => stdClass的对象
                (
                    [报价] => 37
                    [名] =>莫迪亚勒克酒窖
                    [图片网址] => sp_cellardoor.gif
                    [点击网址] =>
                )            [5] => stdClass的对象
                (
                    [报价] => 53
                    [名] => Carmotive
                    [图片网址] => sp_carmotive.jpg
                    [点击网址] => http://www.carmotive.com.au/
                )        )    [2] =>排列
        (
            [0] => stdClass的对象
                (
                    [报价] => 44
                    [名] =>莫迪亚勒克个人教练
                    [图片网址] => sp_mordipt.gif
                    [点击网址] => #
                )            [1] => stdClass的对象
                (
                    [报价] => 36
                    [名] =>大河
                    [图片网址] => sp_bigriver.gif
                    [点击网址] =>
                )            [2] => stdClass的对象
                (
                    [报价] => 52
                    [名] =>莫迪亚勒克旅游和邮轮
                    [图片网址] => sp_morditravel.jpg
                    [点击网址] => http://www.yellowpages.com.au/vic/mordialloc/mordialloc-travel-cruise-13492525-listing.html
                )            [3] => stdClass的对象
                (
                    [报价] => 37
                    [名] =>莫迪亚勒克酒窖
                    [图片网址] => sp_cellardoor.gif
                    [点击网址] =>
                )            [4] => stdClass的对象
                (
                    [报价] => 53
                    [名] => Carmotive
                    [图片网址] => sp_carmotive.jpg
                    [点击网址] => http://www.carmotive.com.au/
                )        )    [3] =>排列
        (
            [0] => stdClass的对象
                (
                    [报价] => 41
                    [名] =>印刷公司图形
                    [图片网址] => sp_printhouse.gif
                    [点击网址] =>
                )            [1] => stdClass的对象
                (
                    [报价] => 49
                    [名] =>金励田土
                    [图片网址] => sp_kimreed.jpg
                    [点击网址] =>
                )            [2] => stdClass的对象
                (
                    [报价] => 37
                    [名] =>莫迪亚勒克酒窖
                    [图片网址] => sp_cellardoor.gif
                    [点击网址] =>
                )            [3] => stdClass的对象
                (
                    [报价] => 53
                    [名] => Carmotive
                    [图片网址] => sp_carmotive.jpg
                    [点击网址] => http://www.carmotive.com.au/
                )        )    [4] =>排列
        (
            [0] => stdClass的对象
                (
                    [报价] => 38
                    [名] =>罗威金融集团
                    [图片网址] => sp_lowe.gif
                    [点击网址] => http://lowefinancial.com/
                )            [1] => stdClass的对象
                (
                    [报价] => 58
                    [名] => Dicount Lollie店
                    [图片网址] =>新DLS logo.jpg
                    [点击网址] =>
                )            [2] => stdClass的对象
                (
                    [报价] => 53
                    [名] => Carmotive
                    [图片网址] => sp_carmotive.jpg
                    [点击网址] => http://www.carmotive.com.au/
                )        )    [5] =>排列
        (
            [0] => stdClass的对象
                (
                    [报价] => 45
                    [名] =>莫迪亚勒克体育俱乐部
                    [图片网址] => MSC logo.jpg
                    [点击网址] =>
                )            [1] => stdClass的对象
                (
                    [报价] => 33
                    [名] =>两兄弟
                    [图片网址] => sp_2brothers.gif
                    [点击网址] => http://www.2brothers.com.au/
                )        )    [6] =>排列
        (
            [0] => stdClass的对象
                (
                    [报价] => 46
                    [名] =>帕特森证券
                    [图片网址] => CMYK patersons_withtag.jpg
                    [点击网址] =>
                )            [1] => stdClass的对象
                (
                    [报价] => 56
                    [名] =>逻辑服务
                    [图片网址] => sp_logical.jpg
                    [点击网址] =>
                )        )    [7] =>排列
        (
            [0] => stdClass的对象
                (
                    [报价] => 59
                    [名] =>纯粹的运动
                    [图片网址] => sp_psport.jpg
                    [点击网址] => http://www.puresport.com.au/
                )            [1] => stdClass的对象
                (
                    [报价] => 51
                    [名] =>里士满和本尼森
                    [图片网址] => sp_richmond.jpg
                    [点击网址] => http://www.richbenn.com.au/
                )        )    [8] =>排列
        (
            [0] => stdClass的对象
                (
                    [报价] => 39
                    [名] =>主街莫迪亚勒克
                    [图片网址] =>主要街道cafe.jpg
                    [点击网址] =>
                )            [1] => stdClass的对象
                (
                    [报价] => 50
                    [名] => Letec
                    [图片网址] => sp_letec.jpg
                    [点击网址] => www.letec.biz
                )        )    [9] =>排列
        (
            [0] => stdClass的对象
                (
                    [报价] => 54
                    [名] => PPM建设者
                    [图片网址] => sp_ppm.jpg
                    [点击网址] => http://www.hotfrog.com.au/Companies/P-P-M-Builders
                )            [1] => stdClass的对象
                (
                    [报价] => 43
                    [名] =>的Systema
                    [图片网址] => sp_systema.gif
                    [点击网址] =>
                )        ))


解决方案

使用 array_unique 功能。

下面是一个多维array_unique函数的一个implentation

 函数super_unique($数组)
{
  $结果= array_map(反序列化,array_unique(array_map(连载,$阵列)));  的foreach($结果为$关键=> $值)
  {
    如果(is_array($值))
    {
      $结果[$关键] = super_unique($值);
    }
  }  返回$结果;
}

没测试过,从函数手册中的注释。

I was wondering if anyone could help me out, I'm trying to find a script that will check my entire array and remove any duplicates if required, then spit out the array in the same format.

Here's an example of my array (as you will see there are some duplicates):

Array
(
    [0] => Array
        (
            [0] => stdClass Object
                (
                    [bid] => 34
                    [name] => Adrianos Pizza & Pasta
                    [imageurl] => sp_adrian.gif
                    [clickurl] => #
                )

            [1] => stdClass Object
                (
                    [bid] => 42
                    [name] => Ray White Mordialloc
                    [imageurl] => sp_raywhite.gif
                    [clickurl] => http://www.raywhite.com/
                )

            [2] => stdClass Object
                (
                    [bid] => 48
                    [name] => Beachside Osteo
                    [imageurl] => sp_beachside.gif
                    [clickurl] => http://www.beachsideosteo.com.au/
                )

            [3] => stdClass Object
                (
                    [bid] => 57
                    [name] => Southern Suburbs Physiotherapy Centre
                    [imageurl] => sp_sspc.jpg
                    [clickurl] => http://www.sspc.com.au
                )

            [4] => stdClass Object
                (
                    [bid] => 52
                    [name] => Mordialloc Travel and Cruise
                    [imageurl] => sp_morditravel.jpg
                    [clickurl] => http://www.yellowpages.com.au/vic/mordialloc/mordialloc-travel-cruise-13492525-listing.html
                )

            [5] => stdClass Object
                (
                    [bid] => 37
                    [name] => Mordialloc Cellar Door
                    [imageurl] => sp_cellardoor.gif
                    [clickurl] => 
                )

            [6] => stdClass Object
                (
                    [bid] => 53
                    [name] => Carmotive
                    [imageurl] => sp_carmotive.jpg
                    [clickurl] => http://www.carmotive.com.au/
                )

        )

    [1] => Array
        (
            [0] => stdClass Object
                (
                    [bid] => 55
                    [name] => 360South
                    [imageurl] => sp_360.jpg
                    [clickurl] => 
                )

            [1] => stdClass Object
                (
                    [bid] => 40
                    [name] => Ripponlea Mitsubishi
                    [imageurl] => sp_mitsubishi.gif
                    [clickurl] => 
                )

            [2] => stdClass Object
                (
                    [bid] => 57
                    [name] => Southern Suburbs Physiotherapy Centre
                    [imageurl] => sp_sspc.jpg
                    [clickurl] => http://www.sspc.com.au
                )

            [3] => stdClass Object
                (
                    [bid] => 52
                    [name] => Mordialloc Travel and Cruise
                    [imageurl] => sp_morditravel.jpg
                    [clickurl] => http://www.yellowpages.com.au/vic/mordialloc/mordialloc-travel-cruise-13492525-listing.html
                )

            [4] => stdClass Object
                (
                    [bid] => 37
                    [name] => Mordialloc Cellar Door
                    [imageurl] => sp_cellardoor.gif
                    [clickurl] => 
                )

            [5] => stdClass Object
                (
                    [bid] => 53
                    [name] => Carmotive
                    [imageurl] => sp_carmotive.jpg
                    [clickurl] => http://www.carmotive.com.au/
                )

        )

    [2] => Array
        (
            [0] => stdClass Object
                (
                    [bid] => 44
                    [name] => Mordialloc Personal Trainers
                    [imageurl] => sp_mordipt.gif
                    [clickurl] => #
                )

            [1] => stdClass Object
                (
                    [bid] => 36
                    [name] => Big River
                    [imageurl] => sp_bigriver.gif
                    [clickurl] => 
                )

            [2] => stdClass Object
                (
                    [bid] => 52
                    [name] => Mordialloc Travel and Cruise
                    [imageurl] => sp_morditravel.jpg
                    [clickurl] => http://www.yellowpages.com.au/vic/mordialloc/mordialloc-travel-cruise-13492525-listing.html
                )

            [3] => stdClass Object
                (
                    [bid] => 37
                    [name] => Mordialloc Cellar Door
                    [imageurl] => sp_cellardoor.gif
                    [clickurl] => 
                )

            [4] => stdClass Object
                (
                    [bid] => 53
                    [name] => Carmotive
                    [imageurl] => sp_carmotive.jpg
                    [clickurl] => http://www.carmotive.com.au/
                )

        )

    [3] => Array
        (
            [0] => stdClass Object
                (
                    [bid] => 41
                    [name] => Print House Graphics
                    [imageurl] => sp_printhouse.gif
                    [clickurl] => 
                )

            [1] => stdClass Object
                (
                    [bid] => 49
                    [name] => Kim Reed Conveyancing
                    [imageurl] => sp_kimreed.jpg
                    [clickurl] => 
                )

            [2] => stdClass Object
                (
                    [bid] => 37
                    [name] => Mordialloc Cellar Door
                    [imageurl] => sp_cellardoor.gif
                    [clickurl] => 
                )

            [3] => stdClass Object
                (
                    [bid] => 53
                    [name] => Carmotive
                    [imageurl] => sp_carmotive.jpg
                    [clickurl] => http://www.carmotive.com.au/
                )

        )

    [4] => Array
        (
            [0] => stdClass Object
                (
                    [bid] => 38
                    [name] => Lowe Financial Group
                    [imageurl] => sp_lowe.gif
                    [clickurl] => http://lowefinancial.com/
                )

            [1] => stdClass Object
                (
                    [bid] => 58
                    [name] => Dicount Lollie Shop
                    [imageurl] => new dls logo.jpg
                    [clickurl] => 
                )

            [2] => stdClass Object
                (
                    [bid] => 53
                    [name] => Carmotive
                    [imageurl] => sp_carmotive.jpg
                    [clickurl] => http://www.carmotive.com.au/
                )

        )

    [5] => Array
        (
            [0] => stdClass Object
                (
                    [bid] => 45
                    [name] => Mordialloc Sporting Club
                    [imageurl] => msc logo.jpg
                    [clickurl] => 
                )

            [1] => stdClass Object
                (
                    [bid] => 33
                    [name] => Two Brothers
                    [imageurl] => sp_2brothers.gif
                    [clickurl] => http://www.2brothers.com.au/
                )

        )

    [6] => Array
        (
            [0] => stdClass Object
                (
                    [bid] => 46
                    [name] => Patterson Securities
                    [imageurl] => cmyk patersons_withtag.jpg
                    [clickurl] => 
                )

            [1] => stdClass Object
                (
                    [bid] => 56
                    [name] => Logical Services
                    [imageurl] => sp_logical.jpg
                    [clickurl] => 
                )

        )

    [7] => Array
        (
            [0] => stdClass Object
                (
                    [bid] => 59
                    [name] => Pure Sport
                    [imageurl] => sp_psport.jpg
                    [clickurl] => http://www.puresport.com.au/
                )

            [1] => stdClass Object
                (
                    [bid] => 51
                    [name] => Richmond and Bennison
                    [imageurl] => sp_richmond.jpg
                    [clickurl] => http://www.richbenn.com.au/
                )

        )

    [8] => Array
        (
            [0] => stdClass Object
                (
                    [bid] => 39
                    [name] => Main Street Mordialloc
                    [imageurl] => main street cafe.jpg
                    [clickurl] => 
                )

            [1] => stdClass Object
                (
                    [bid] => 50
                    [name] => Letec
                    [imageurl] => sp_letec.jpg
                    [clickurl] => www.letec.biz
                )

        )

    [9] => Array
        (
            [0] => stdClass Object
                (
                    [bid] => 54
                    [name] => PPM Builders
                    [imageurl] => sp_ppm.jpg
                    [clickurl] => http://www.hotfrog.com.au/Companies/P-P-M-Builders
                )

            [1] => stdClass Object
                (
                    [bid] => 43
                    [name] => Systema
                    [imageurl] => sp_systema.gif
                    [clickurl] => 
                )

        )

)

解决方案

Use the array_unique function.

Here is an implentation of a multi-dimensional array_unique function.

function super_unique($array)
{
  $result = array_map("unserialize", array_unique(array_map("serialize", $array)));

  foreach ($result as $key => $value)
  {
    if ( is_array($value) )
    {
      $result[$key] = super_unique($value);
    }
  }

  return $result;
}

Not tested, from the comments in the function manual.

这篇关于PHP删除数组重复的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆