_mediamosa_development_compare_array

Versions
mediamosa-21
_mediamosa_development_compare_array($array1, $array2, $name1 = 'array1', $name2 = 'array2', $results, $ignore_keys = array(), $location = array())

Compare 2 arrays and store the difference.

▾ 2 functions call _mediamosa_development_compare_array()

_ajax_execute_rest_call in sites/all/modules/mediamosa_development/mediamosa_development.admin.inc
Insert the output of the REST call into a text area.
_mediamosa_development_compare_array in sites/all/modules/mediamosa_development/mediamosa_development.admin.inc
Compare 2 arrays and store the difference.

Code

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;
}
?>