UZEIR
@UZEIR
Учусь. Пытаюсь развиваться.

Как сделать схождение массивов?

У меня есть два массива.
$svois и $get_svois
Так вот массив $svois многомерный такого вида
Array
(
    [0] => Array
        (
            [id] => 17
            [idcat] => 315
        )
  [1] => Array
        (
            [id] => 17
            [idcat] => 315
     
        )

а массив
$get_svois такого вида
Array
        (
            [id] => 17
            [idcat] => 315
        )


Как правильно мне сделать схождения, но что бы из массива $svois вывелись только те массивы в которых есть схождения. (Вывели их расхождения)

У меня не получается это вывестип правильно в цикле

Как я сделал
$kol= count($svois );
 for($a=0;$a<$kol;$a++){

$res =  array_diff_assoc($svois [$a],$get_svois);
}


Но результат выходит таков что он выводит все массивы где есть схождение и где его нет, единственное где есть схождения убирает ключи, мне нужно не выводить те массивы где нет схождения.

Пример:
$svois
Array
(
    [0] => Array
        (
            [id] => 17
            [idcat] => 315
            [market_cat] => 2
            [idproduct] => 115
            [catsvois] => 3,4,8,10
            [brend] => 9032
            [foto] => 1
            [price] => 5000
            [Type_po] => 
            [class] => 
            [appointment] => 
            [sost] => 
            [forma] => 
            [Weight] => 100 9
            [stalc] => 
            [grade] => 
            [Type] => 
            [method] => 107
            [amount] => 1000 
            [Width] => 
            [Height] => 
            [Length] => 
            [Colour] => 2,5,6,7,15
        )

    [1] => Array
        (
            [id] => 18
            [idcat] => 315
            [market_cat] => 2
            [idproduct] => 116
            [catsvois] => 3,4,13
            [brend] => 8977
            [foto] => 0
            [price] => 1000
            [Type_po] => 
            [class] => 
            [appointment] => 
            [sost] => 
            [forma] => 
            [Weight] => 500 11
            [stalc] => 
            [grade] => 
            [Type] => 
            [method] => 
            [amount] => 
            [Width] => 
            [Height] => 
            [Length] => 
            [Colour] => 5,14,15,30
        )

    [2] => Array
        (
            [id] => 19
            [idcat] => 315
            [market_cat] => 2
            [idproduct] => 119
            [catsvois] => 12
            [brend] => 8980
            [foto] => 0
            [price] => 534
            [Type_po] => 
            [class] => 
            [appointment] => 
            [sost] => 
            [forma] => 
            [Weight] => 
            [stalc] => 
            [grade] => 
            [Type] => 111
            [method] => 
            [amount] => 
            [Width] => 
            [Height] => 
            [Length] => 
            [Colour] => 
        )

    [3] => Array
        (
            [id] => 20
            [idcat] => 315
            [market_cat] => 2
            [idproduct] => 120
            [catsvois] => 8,9,12
            [brend] => 8977
            [foto] => 0
            [price] => 534
            [Type_po] => 
            [class] => 
            [appointment] => Тут текст
            [sost] => 
            [forma] => 
            [Weight] => 
            [stalc] => 
            [grade] => 
            [Type] => 110
            [method] => 
            [amount] => 312 
            [Width] => 
            [Height] => 
            [Length] => 
            [Colour] => 
        )


Массив $get_svois
Array
(
    [products_cat] => 315
    [market_cat] => 2
    [brend] => 8977
)


Желаемый результат
Массив
[0] => Array
        (
            [id] => 18
            [idcat] => 315
            [market_cat] => 2
            [idproduct] => 116
            [catsvois] => 3,4,13
            [brend] => 8977
            [foto] => 0
            [price] => 1000
            [Type_po] => 
            [class] => 
            [appointment] => 
            [sost] => 
            [forma] => 
            [Weight] => 500 11
            [stalc] => 
            [grade] => 
            [Type] => 
            [method] => 
            [amount] => 
            [Width] => 
            [Height] => 
            [Length] => 
            [Colour] => 5,14,15,30
        )
  [1] => Array
        (
            [id] => 20
            [idcat] => 315
            [market_cat] => 2
            [idproduct] => 120
            [catsvois] => 8,9,12
            [brend] => 8977
            [foto] => 0
            [price] => 534
            [Type_po] => 
            [class] => 
            [appointment] => Тут текст
            [sost] => 
            [forma] => 
            [Weight] => 
            [stalc] => 
            [grade] => 
            [Type] => 110
            [method] => 
            [amount] => 312 
            [Width] => 
            [Height] => 
            [Length] => 
            [Colour] => 
        )


То есть все массивы из массива $svois где есть схождение ключей и значения с массивом $get_svois. То есть в массиве $get_svois есть массив [brend] => 8977, получается в массиве $svois мы нашли два схождение массива с ключом brend равным 8977. И результат остался массив с его другими ключами и значениями, а массивы где нет схождения не должны выводится.
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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