_mediamosa_development_compare_array($array1, $array2, $name1 = 'array1', $name2 = 'array2', $results, $ignore_keys = array(), $location = array())Compare 2 arrays and store the difference.
sites/all/modules/mediamosa_development/mediamosa_development.admin.inc, line 198
<?php
function _mediamosa_development_compare_array($array1, $array2, $name1 = 'array1', $name2 = 'array2', $results, $ignore_keys = array(), $location = array()) {
if (is_array($array1)) {
if (!is_array($array2)) { // array 1 is value, array 2 not.
$results[] = t('Difference types at !loc values of @name1 = array - @name2 = value', array('!loc' => (string)implode('->', $location), '@name1' => $name1, '@name2' => $name2));
}
else {
foreach ($array1 as $key => $value1) {
if (in_array($key, $ignore_keys)) {
continue;
}
if (!isset($array2[$key])) {
$results[] = t('Missing value in @name2 at !loc found in @name1.', array('!loc' => (string)implode('->', $location) . '->' . $key, '@name1' => $name1, '@name2' => $name2));
}
else {
// Call ourselfs again.
$location[] = (string)$key;
$results = _mediamosa_development_compare_array($value1, $array2[$key], $name1, $name2, $results, $ignore_keys, $location);
array_pop($location);
}
}
foreach ($array2 as $key => $value1) {
if (!isset($array1[$key])) {
$results[] = t('Missing value in @name1 at !loc found in @name2.', array('!loc' => (string)implode('->', $location) . '->' . $key, '@name1' => $name1, '@name2' => $name2));
}
}
}
}
else {
if (is_array($array2)) { // array 1 is value, array 2 not.
$results[] = t('Difference types at !loc values of @name1 = value - @name2 = array', array('!loc' => (string)implode('->', $location), '@name1' => $name1, '@name2' => $name2));
}
// Compare values;
elseif ($array1 != $array2) {
$results[] = t('Difference at !loc values of @name1 = @value1 - @name2 = @value2', array('!loc' => (string)implode('->', $location), '@name1' => $name1, '@name2' => $name2, '@value1' => $array1, '@value2' => $array2));
}
}
return $results;
}
?>