$section) { if (!isset($test[$sectionName])) { echo '- section: ' . $sectionName . "\n"; $diffSection = true; } } foreach ($test as $sectionName => $section) { if (!isset($good[$sectionName])) { echo '+ section: ' . $sectionName . "\n"; $diffSection = true; } } if (!$diffSection and array_keys($good)!==array_keys($test)) { var_dump(array_keys($good)); var_dump(array_keys($test)); } else { echo 'All sections are in two langs.' . "\n"; } $diff = []; foreach ($good as $sectionName => $section) { $diffSection = false; foreach($section as $key=>$value) { if (!isset($test[$sectionName][$key])) { $diff[$sectionName]['-'][] = $key; $diffSection = true; } } if (!$diffSection and array_keys($good[$sectionName]) !== array_keys($test[$sectionName])) { $diff[$sectionName]['order_good'] = array_keys($good[$sectionName]); $diff[$sectionName]['order_test'] = array_keys($test[$sectionName]); } } foreach ($test as $sectionName => $section) { foreach($section as $key=>$value) { if (!isset($good[$sectionName][$key])) { $diff[$sectionName]['+'][] = $key; } } } if (count($diff) > 0) { var_dump($diff); } ?>