I have deleted the old post to make this more clear. I have 2 arrays that I need to compare and match but only if 2 values per array are the same.

$array1 = $plugins
$array2 = $xml_dump

A sample of what both arrays look like:


    [all] => Array
            [ajax-category-dropdown/dhat-ajax-cat-dropdown.php] => Array
                    [Name] => Ajax Category Dropdown
                    [PluginURI] => http://www.example.com/ajax/
                    [Version] => 0.1.5
                    [Description] => Generates multi-level ajax. 
                    [Author] => DyasonHat
                    [AuthorURI] => http://www.dyasonhat.com
                    [Title] => Ajax Category Dropdown
                    [AuthorName] => Dya

            [akismet/akismet.php] => Array
                    [Name] => Akismet
                    [PluginURI] => http://akismet.com/
                    [Version] => 2.5.3
                    [Description] => Used by millions
                    [Author] => Automattic
                    [AuthorURI] => http://automattic.com/
                    [Title] => Akismet
                    [AuthorName] => Automattic

SimpleXMLElement Object
    [plugin] => Array
            [0] => SimpleXMLElement Object
                    [name] => Ajax Category Dropdown
                    [ex_version] => 0.1.5
                    [ex_date] => 2008-01-03
                    [plugin_url] => http://wordpress.org/extend/plugins/wp-contactform/
                    [advisory_url] => http://osvdb.org/show/osvdb/43284

            [1] => SimpleXMLElement Object
                    [name] => WP-ContactForm
                    [ex_version] => 2.0.7
                    [ex_date] => 2008-01-03
                    [plugin_url] => http://wordpress.org/extend/plugins/wp-contactform/
                    [advisory_url] => http://osvdb.org/show/osvdb/43284

            [2] => SimpleXMLElement Object
                    [name] => Math Comment Spam Protection
                    [ex_version] => 2.1
                    [ex_date] => 2008-01-03
                    [plugin_url] => http://wordpress.org/extend/plugins/math-comment-spam-protection/
                    [advisory_url] => a

I need it to return the value ( or return true) only if $array1 Name , Version matches $array2 name ,ex_version

In the example above you can see that

Name => Ajax Category Dropdown
Version => 0.1.5

///has a match in 

name => Ajax Category Dropdown
ex_version => 0.1.5

I have tried many variations of array_intersect but I cannot get it to match 2 values for each array.


How do the arrays look like?

Written by Felix Kling

array_intersect is what you probably need

Written by JohnP

This is a bit cryptic...

Written by Capsule

I added an array dump

Written by Wyck

Yes it was way to cryptic, I completely changed it so hopefully it is more clear.

Written by Wyck

Accepted Answer

Just wanted to close this with what ended up being my solution.

I grab the Name and Version for both arrays and created a new array for each one, that way I could easily use array_intersect and manipulate they arrays. So to get this to work I just needed to create two new arrays with the values I wanted to compare.

 $a = array();
 $b = array();

 //first foreach loop

 $find_local_plugs = $global_plugins_name . $plugin_version;
 $a[] = $find_local_plugs;

 //second foreach loop

 $find_remote_plugs = $xml_plugins . $xml_plugin_version;
 $b[] = $find_remote_plugs;

 $matches = array_intersect($a, $b);
Written by Wyck
This page was build to provide you fast access to the question and the direct accepted answer.
The content is written by members of the stackoverflow.com community.
It is licensed under cc-wiki