Добрый день друзья! Прошу помочь как правильно написать код для сравнения 2-х массивов $array1 и $array2.
Array
(
[0] => Array
(
[icraci_id] => 6
[iwci] => K. A
[icra] => 1
)
)
и
Array
(
[0] => Array
(
[icraci_id] => 6
[iwci] => K. A
[count] => 1
)
(
[1] => Array
(
[icraci_id] => 7
[iwci] => K. B
[count] => 3
)
(
[2] => Array
(
[icraci_id] => 8
[iwci] => K. C
[count] => 2
)
)
Пишу
<?php $i=1; $a=0; foreach ($array1 as $item):?>
<tr><td><?=$i?></td>
<td><?=$item['iwci']?></td>
<td><?=$item['cnt']?></td>
<td><?php
if (in_array($item['icraci_id'], $array2[$a])){
$array2[$a]['icra']}
else {
что-то другое...
}
?>
<?php $i++;$a++; endforeach; ?>
Он сравнивает не так как нужно.
Как писали в комментариях к официальной документации array_diff можно использовать вот такую рекурсивную функцию:
function arrayRecursiveDiff($aArray1, $aArray2) {
$aReturn = array();
foreach ($aArray1 as $mKey => $mValue) {
if (array_key_exists($mKey, $aArray2)) {
if (is_array($mValue)) {
$aRecursiveDiff = arrayRecursiveDiff($mValue, $aArray2[$mKey]);
if (count($aRecursiveDiff)) { $aReturn[$mKey] = $aRecursiveDiff; }
} else {
if ($mValue != $aArray2[$mKey]) {
$aReturn[$mKey] = $mValue;
}
}
} else {
$aReturn[$mKey] = $mValue;
}
}
return $aReturn;
}
Помог еще один foreach
<?php
$i =1;
foreach ($array1 as $key => $item):?>
<tr>
<td><?=$i?></td>
<td><?=$item['iwci']?></td>
<td class="text-center"><?=$item['cnt']?></td>
<td class="text-center">
<?php
foreach ($array2 as $title) {
if ($item['icraci_id'] == $title['icraci_id']){
echo $title['icra'];
}
}
?>
</td>
</tr>
<?php
$i++;
endforeach; ?>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости