PHP - array_diff() отсутствует запись

У меня есть два ассоциативных массива:

$indexedProducts =

[0] => Array
    (
        [id] => 6662
    )

[1] => Array
    (
        [id] => 6656
    )

[2] => Array
    (
        [id] => 6657
    )

[3] => Array
    (
        [id] => 6527
    )

[4] => Array
    (
        [id] => 6528
    )

[5] => Array
    (
        [id] => 6529
    )

а также $категорияПродукты =

[0] => Array
    (
        [id] => 6527
    )

[1] => Array
    (
        [id] => 6528
    )

[2] => Array
    (
        [id] => 6529
    )

затем я запускаю эту команду:

$difference = array_diff($indexedProducts[0], $categoryProducts[0]);

результат я ожидаю отсюда представляет собой массив значений 6662,6656 и 6657:

[0] => Array
    (
        [id] => 6662
    )

[1] => Array
    (
        [id] => 6656
    )

[2] => Array
    (
        [id] => 6657
    )

поскольку все они встречаются в первом массиве, а не во втором массиве.

Результат, который я получаю от этого

[id] => 6662

кажется, что он останавливается на первом не найденном индексе.

Где я ошибаюсь в этом?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
61
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Что вам действительно нужно для сравнения, так это столбец идентификатора в обоих мультимассивах:

array_diff(
    array_column($indexedProducts, 'id'),
    array_column($categoryProducts, 'id')
);

Array_diff работает только с плоскими массивами.

Используйте array_column, чтобы сделать массивы плоскими перед их сравнением.

var_dump(array_diff(array_column($indexedProducts, "id"), array_column($categoryProducts, "id")));
//[6662,6656,6657]

https://3v4l.org/5fsLE

Другие вопросы по теме