Jump to content

Recommended Posts

Hi there,

I've got the following issue:

 

I've menaged to parse RSS data from a given XML file into a PHP object with SimpleXML. As this is quiet a trivial task, so far so good.

At a particluar spot within the code I have the following object instances.

 

Here's a print_r($obj);

 

Two first two object instances are equal because they have the same attributes and values, wheras the third one is different.

What I like to be doing here before going any further is to get rid of duplicates and only take unequal instances  to proced with my methods and code.

 

My idea now is to compare a particular attribute (E.g. $obj->title)  and if that attribute appears to exist more than once, get rid of the/all duplicate/s.

 

Something like DISTINCT in SQL if that make sense :)

 

How can I get that going?

 

Cheers!

 

stdClass Object
(
    [type] => cbd
    [uid] => 1
    [status] => 1
    [promote] => 1
    [sticky] => 1
    [title] => Test 1
    [body] => This CATS (Creating Accessible Teaching & Support) 
    [teaser] => This CATS (Creating Accessible Teaching & Support) 
    [ftype] => RSS
    [fversion] => 2.0
    [fencoding] => UTF-8
    [flanguage] => en
    [fmanagingeditor] => 2
    [cmetadata_size] => 0
    [taxonomy] => Array
        (
            [tags] => Array
                (
                    [19] => 
                    [46] => 
                    [45] =>  Curriculum, Inclusive design, Curriculum, Learning design approaches
                    [5] => 
                )

        )

)

stdClass Object
(
    [type] => cbd
    [uid] => 1
    [status] => 1
    [promote] => 1
    [sticky] => 1
    [title] => Test 1
    [body] => This CATS (Creating Accessible Teaching & Support) 
    [teaser] => This CATS (Creating Accessible Teaching & Support) 
    [ftype] => RSS
    [fversion] => 2.0
    [fencoding] => UTF-8
    [flanguage] => en
    [fmanagingeditor] => 2
    [cmetadata_size] => 0
    [taxonomy] => Array
        (
            [tags] => Array
                (
                    [19] => 
                    [46] => 
                    [45] =>  Curriculum, Inclusive design, Curriculum, Learning design approaches
                    [5] => 
                )

        )

)

stdClass Object
(
    [type] => cbd
    [uid] => 1
    [status] => 1
    [promote] => 1
    [sticky] => 1
    [title] => Test 2
    [body] => The use and efficacy of a simulation model 
    [teaser] => The use and efficacy of a simulation model 
    [ftype] => RSS
    [fversion] => 2.0
    [fencoding] => UTF-8
    [flanguage] => en
    [fmanagingeditor] => 2
    [cmetadata_size] => 0
    [taxonomy] => Array
        (
            [tags] => Array
                (
                    [19] =>  Engineering and Related Technologies, Civil Engineering
                    [46] => 
                    [45] =>  Flexible learning, Learning designs, Simulation-based learning
                    [5] => 
                )

        )

)

Link to comment
https://forums.phpfreaks.com/topic/70113-solved-object-comparison/
Share on other sites

Here's the solution: I could also do something similar to serialize but use hash instead. As I add the objects to an array, I have the hash being the array key, then before I add an object to the array I see if the hash already exists with array_key_exists(), if it does then I don't add it.

 

Actually I don't even need to check if the hash is already set, I can just add them all and duplicate keys will overwrite, so in the end my array will have only distinct objects.

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.