Всем привет!
Написал функцию сравнения ключей и значений двух массивов:
$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
Подскажите, по какому алгоритму проводить проверку, если какой-то из ключей содержит в себе еще массив?
И еще вопрос - часто ли на практике встречаются подобные задачи, если да - можно примеры?
Спасибо.