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