note 74762 deleted from ref.array by felipe

[email protected]
Newsgroups php.notes
Message-ID <[email protected]>
Note Submitter: frando 

----

This is a super-hard array conversion function.
It only returns TRUE if the two arrays are completely identical, that means that they have the same keys, and the values of all keys are exactly the same (compared with ===).

<?php
function array_same($a1, $a2) {
  if (!is_array($a1) || !is_array($a2))
    return false;
  
  $keys = array_merge(array_keys($a1), array_keys($a2));
  
  foreach ($keys as $k) {
    if (!isset($a2[$k]) || !isset($a1[$k]))
      return false;
      
    if (is_array($a1[$k]) || is_array($a2[$k])) {
      if (!array_same($a1[$k], $a2[$k]))
        return false;
    }
    else {
      if (! ($a1[$k] === $a2[$k]))
        return false;
    } 
  }
  
  return true;
}
?>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.