Home
PHP
Tech Tube
MySQL
Linux
CSS&HTML
JavaScript

Compare PHP arrays structure

The following function checks if two multidimensional arrays have the same structure.
function haveSameStructure($arr1, $arr2) {
    if (count($arr1) !== count($arr2)) {
        return false;
    }

    foreach ($arr1 as $key => $value) {
        if (!array_key_exists($key, $arr2)) {
            return false;
        }

        if (is_array($value) && !is_array($arr2[$key])) {
            return false;
        }

        if (!is_array($value) && is_array($arr2[$key])) {
            return false;
        }

        if (is_array($value) && is_array($arr2[$key])) {
            if (!haveSameStructure($value, $arr2[$key])) {
                return false;
            }
        }
    }

    return true;
}