Задать вопрос
@Beeshop87

Как сравнить несколько массивов и вернуть общее значение в php?

Всем привет! Никак не найду решение. Есть идеи?
Имеем такой массив:

$array {
  [0]=>
  array(1) {
    [0]=>
    string(2) "28"
  }
  [1]=>
  array(2) {
    [0]=>
    string(2) "28"
    [1]=>
    string(2) "29"
  }
}


И массив для сравнения:

$filter {
  [0]=>
  string(2) "28"
  [1]=>
  string(2) "29"
}


Подскажите как сравнить $array с массивом сравнения чтобы получить только 28 ?

такой код возвращает все совпадения.

foreach ($array as $item) {

  $arResult = array_intersect($filter, $item);

}
  • Вопрос задан
  • 161 просмотр
Подписаться 1 Простой 3 комментария
Решения вопроса 1
Fernus
@Fernus
Техник - Механик :)
Как вариант для понимания логики...

<?php

$ar1 = [
        [28],
        [28, 29]
    ];
    
$ar2 = [28, 29];

$arRes = [];
$arResult = [];

foreach($ar1 as $arItems) {
    
    foreach($arItems as $item) {
        
        if(in_array($item, $ar2))
            if(!isset($arRes[$item]))
                    $arRes[$item] = 1;
                else
                    $arRes[$item]++;
        
    }
    
}

$allAr1 = count($ar1);

foreach($arRes as $k => $v)
    if($v >= $allAr1)
        $arResult[] = $k;
        
print_r($arResult);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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