Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compare 2 array values in 2 arrays Php

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:

$plugins 

Array
(
    [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
                )


$xml_dump
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

$array1
Name => Ajax Category Dropdown
Version => 0.1.5

///has a match in 

$array2
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.

like image 311
Wyck Avatar asked Oct 25 '22 13:10

Wyck


1 Answers

If I understood you right this should do it:

array_intersect_assoc(array_intersect($global_plugins, $xml_plugins), array_intersect($plugin_verso, $xml_plugin_version));

Your question is very confusing, you are talking about $array1 and $array2 but I see four of them!

Anyway, have you tried the following? This is just a wild guess, but...

$result = array_intersect($global_plugins, $xml_plugins, $xml_plugin_version, $plugin_verso);

If this doesn't work, I suggest you drop your real world arrays and create some simple / small dummy ones instead and provide us with the result you want to archive for the very same dummy data.

like image 51
Alix Axel Avatar answered Oct 27 '22 10:10

Alix Axel