6

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] => 
                )

        )

)
4
  • 1
    You have a lot of nested arrays. Which duplicates do you mean? E.g. the first subarray contains an object with ID 57. Does that mean, this object should be removed in the second (and all further) subarray(s)? Commented May 18, 2010 at 21:35
  • 1
    Probably duplicate : stackoverflow.com/questions/307674/… Commented May 18, 2010 at 21:38
  • yep, that's what I'm after.. I know it's multidimensional but if there's duplicate of anything from any of the subarrays it should be removed :) Commented May 18, 2010 at 21:38
  • Ok, just wanted to know whether I got it right :) Commented May 18, 2010 at 21:39

5 Answers 5

5

You can remove duplicates from an array by doing:

$array = array_values(array_unique($array));
Sign up to request clarification or add additional context in comments.

Comments

4

Try this, it works with large arrays:

$original = array('one', 'two', 'three', 'four', 'five', 'two', 'four');
$filtered = array();
foreach ($original as $key => $value){
    if(in_array($value, $filtered)){
        continue;
    }
    array_push($filtered, $value);
}

print_r($filtered);

Outputs:

Array
(
    [0] => one
    [1] => two
    [2] => three
    [3] => four
    [4] => five
)

1 Comment

3 years later and this helped me with my coder writer's block.
3

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.

4 Comments

+1, however that seems awfully familiar (stackoverflow.com/questions/1247950/…)... xP
You need to cast the objects to arrays and use array_merge.
Tried the code from the other thread but doesn't work with my array, it still comes up with duplicates..
this function super unique works only on 2 dimentions arrays i tried it and it works but only on 2D
0

My PHP's rusty, but something like this should work:

function makeUniqueBidArray(&$array)
{
  $tempArray = array();
  foreach($array as $bidArray) {
    foreach($bidArray as $bid) {
      if (isset($tempArray[$bid->bid]) {
        unset($bid);
      } else {
        $tempArray[$bid->bid] = $bid->name;
      }
    }
  }
}

Comments

0

stop using your own array splitting function that causes duplicates and read the php manual page on array_chunk

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.