w3resource

PHP Array Exercises : Difference of two multidimensional arrays


57. Compare Two Multidimensional Arrays for Difference

Write a PHP function to compares two multidimensional arrays and returns the difference.

Sample Solution:

PHP Code:

<?php
// Function to compare keys for array_diff_uassoc
function key_compare($a, $b)
{
    // If keys are identical, return 0
    if ($a === $b)
        return 0;

    // Return 1 if $a is greater than $b, otherwise return -1
    return ($a > $b) ? 1 : -1;
}

// Function to find the difference between two multidimensional arrays based on associative keys
function multidimensional_array_diff($arr1, $arr2)
{
    // Use array_diff_uassoc to find the difference based on the provided key_compare function
    return array_diff_uassoc($arr1['c'], $arr2['c'], "key_compare");
}

// Two multidimensional arrays
$color1 = array('a' => 'White', 'b' => 'Red', 'c' => array('a' => 'Green', 'b' => 'Blue', 'c' => 'Yellow'));
$color2 = array('a' => 'White', 'b' => 'Red', 'c' => array('a' => 'White', 'b' => 'Red', 'c' => 'Yellow'));

// Print the difference between the multidimensional arrays
print_r(multidimensional_array_diff($color1, $color2));

?>

Output:

Array                                                       
(                                                           
    [a] => Green                                            
    [b] => Blue                                             
)

Flowchart:

Flowchart: PHP - Compares two multidimensional arrays and returns the difference

For more Practice: Solve these Related Problems:

  • Write a PHP function to compare two multidimensional arrays and return the differences using recursive comparison.
  • Write a PHP script to implement a custom function that identifies elements present in one multidimensional array but not in another.
  • Write a PHP program to compute and display the difference between two complex arrays by comparing sub-array values.
  • Write a PHP script to recursively traverse two multidimensional arrays and output an array of differences.

Go to:


PREV : Create Two-Dimensional Array (4x4) Initialized to 10.
NEXT : Combine Two Arrays (Keys and Values).

PHP Code Editor:



Contribute your code and comments through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.