Как сравнить ключи/значения многомерных массивов?

Всем привет!
Написал функцию сравнения ключей и значений двух массивов:
$arr1 = [
	'1' => 1,
	'max' => '58',
	'length' => 156,
	23 => 12,
	123 => 321,
	'key' => 'value',
];

$arr2 = [
	'2' => 1,
	'max' => '58',
	'length' => 23,
	32 => 1,
	'321' => 'John',
	'key' => 'value',
];
function checkArrays($array1, $array2){

	$arr1Keys = array_keys($array1);
	$arr1Values = array_values($array1);

	$arr2Keys = array_keys($array2);
	$arr2Values = array_values($array2);

	$minArrCount = min(count($arr1Keys), count($arr2Keys));

	echo 'Проверка ключей двух массивов:' . '<br>';

	for ($i=0; $i < $minArrCount; $i++) { 
		if($arr1Keys[$i] == $arr2Keys[$i]){
			echo $arr1Keys[$i] . ' = ' . $arr2Keys[$i] . '<br>';
		}else{
			echo $arr1Keys[$i] . ' != ' . $arr2Keys[$i] . '<br>';
		}
	}


	echo 'Проверка значений двух массивов:' . '<br>';

	for ($i=0; $i < $minArrCount; $i++) { 
		if($arr1Values[$i] == $arr2Values[$i]){
			echo $arr1Values[$i] . ' = ' . $arr2Values[$i] . '<br>';
		}else{
			echo $arr1Values[$i] . ' != ' . $arr2Values[$i] . '<br>';
		}
	}
}

Результат работы функции:
Проверка ключей двух массивов:
1 != 2
max = max
length = length
23 != 32
123 != 321
key = key
Проверка значений двух массивов:
1 = 1
58 = 58
156 != 23
12 != 1
321 != John
value = value

Подскажите, по какому алгоритму проводить проверку, если какой-то из ключей содержит в себе еще массив?
И еще вопрос - часто ли на практике встречаются подобные задачи, если да - можно примеры?
Спасибо.
  • Вопрос задан
  • 623 просмотра
Пригласить эксперта
Ответы на вопрос 1
Посмотри что такое рекурсия и с чем её едят. Например вот там.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы