@lolrofl01

Есть ли функция в php или laravel для сравнения названий в массивах?

Есть 2 ассоциативных массива:
$arr1[] = [
'name1' => 'Имя',
'name2' => 'Имя2'
];

$arr2[] = [
'name1' => 'Имя2',
'name2' => 'Имя4',
'link' => 'href'
];


Необходимо сравнить name1 и name2 в обоих массивах, и если есть хотя бы одно сходство (как в примере выше, сходится Имя2, то названия оставить, в противном случае, удалить элемент массива. Есть ли функция в пхп или метод в ларе ,который бы облегчил эту задачу?
  • Вопрос задан
  • 1184 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
<?php
$arr1 = [
'name1' => 'Имя',
'name2' => 'Имя2'
];

$arr2 = [
'name1' => 'Имя2',
'name2' => 'Имя4',
'link' => 'href'
];


function array_cross(&$arr1,&$arr2,$r=false) {
   foreach($arr1 as $k1=>$a1) {
     $f=false;
     foreach($arr2 as $k2=>$a2)
       if($a1==$a2) {$f=true;break;}
       if(!$f) unset($arr1[$k1]);
     }

    if(!$r) array_cross($arr2,$arr1,true);
}

array_cross($arr1,$arr2);
echo '$arr1[] = ';
print_r($arr1);
echo '<br>$arr2[] = ';
print_r($arr2);
/*
$arr1[] = Array ( [name2] => Имя2 ) 
$arr2[] = Array ( [name1] => Имя2 )
*/
?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

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

Похожие вопросы