Forums / Developer / Find duplicate items in an array (how to)
Jorge estévez
Thursday 11 September 2008 5:24:21 am
Hello,
I have this bunch of products with each one of the having a unique code (text line), I would like to search all of the products and see if the unique id repeats itself
So, I should:
Get all products Add eah ID to an array Search the array to find if there is a duplicate ID item in it
How do I "Search the array to find if there is a duplicate item in it", this could be a slow programming algorithm..
Any hints,
Thanks
Diseño Web Cuba Web Design Cuba www.elfosdesign.com
Piotrek Karaś
Thursday 11 September 2008 8:53:44 am
If you worked directly with MySQL, you could do with something like this:
SELECT COUNT(real_id), real_id, duplicate_id FROM table GROUP BY duplicate_id
and probably even limit the results to only duplicates.
In PHP, I'm not sure if it is fast, but should work:
<?php $IDArray = array(...); // here are all the IDs, including duplicates $IDCount = array_count_values( $IDArray ); $duplicateArray = array(); foreach( $IDCount as $id => $count ) { if( $count > 1 ) { array_push( $duplicateArray, $id ); } } $duplicateArray = ... // these are duplicate ids... ?>
http://pl.php.net/manual/pl/function.array-count-values.php
-- Company: mediaSELF Sp. z o.o., http://www.mediaself.pl eZ references: http://ez.no/partners/worldwide_partners/mediaself eZ certified developer: http://ez.no/certification/verify/272585 eZ blog: http://ez.ryba.eu
Mark Marsiglio
Saturday 13 September 2008 11:22:46 am
This function might be useful -
http://ez.no/doc/ez_publish/technical_manual/4_0/reference/template_operators/arrays/unique
however, are you interested in the duplicates? Or the array with duplicates removed?
http://www.thinkcreative.com Turning Ideas Into Strategic Solutions
Saturday 13 September 2008 12:21:12 pm
Hi!
What I would like to do is to allow my client to make a click on a link that will search all products unique codes and tell him wich items have the same code (an error while populating the site)...
So I must search all products codes, select all that have same ID's and show them to my customer.
This algorithm should be run on demand as it will slow down the site, I cannot aford to do such a thing each time an item is added.
Unique will eliminate duplicate entryes within the array THIS IS NOT WHAT I WOULD LIKE TO DO!
Unique could be used before running the "duplicate search code" to see if it has duplicate codes (comparing the array|count before with an array|count|unique)
any hintsthanks