Forums / Developer / Find duplicate items in an array (how to)

Find duplicate items in an array (how to)

Author Message

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

Jorge estévez

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 hints
thanks

Diseño Web Cuba
Web Design Cuba
www.elfosdesign.com

eZ debug

Timing: Jan 18 2025 19:05:30
Script start
Timing: Jan 18 2025 19:05:30
Module start 'content'
Timing: Jan 18 2025 19:05:30
Module end 'content'
Timing: Jan 18 2025 19:05:30
Script end

Main resources:

Total runtime0.1982 sec
Peak memory usage4,096.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0069 588.9609180.8281
Module start 'content' 0.00690.0070 769.789198.0547
Module end 'content' 0.01390.1843 867.8438526.2500
Script end 0.1982  1,394.0938 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00381.9262200.0002
Check MTime0.00140.7267200.0001
Mysql Total
Database connection0.00140.706810.0014
Mysqli_queries0.142371.78701410.0010
Looping result0.00160.81221390.0000
Template Total0.183992.810.1839
Template load0.00090.430810.0009
Template processing0.183092.335110.1830
Override
Cache load0.00060.302710.0006
Sytem overhead
Fetch class attribute can translate value0.00080.415610.0008
XML
Image XML parsing0.00030.148810.0003
General
dbfile0.00763.8286200.0004
String conversion0.00000.004230.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs