array_dif не работает, поскольку вывод пуст - PullRequest
0 голосов
/ 20 февраля 2019

Я создал 2 массива и хочу проверить разницу между двумя массивами (значениями).Если я использую свои массивы с функцией array_diff, ответом будет пустой массив, который очень странный, поскольку я вообще не могу найти проблему.

Мои настройки:

// first array
$listing_products_sku = [
    '55995', '55996', '55999', '56000', '56005', '56006', '56007',
    '56008', '56021', '56022', '56023', '56024', '56029', '56030',
    '56031', '56032', '56036', '56037',
];

// second array:
$internal_products_sku = [
    '56015', '56016', '56014', '56018', '56019', '56020', '55994',
    '55995', '55996', '55997', '55998', '55999', '56000', '56001',
    '56002', '56003', '56005', '56004', '56006', '56007', '56008',
    '56009', '56010', '56011', '56012', '56013', '56017', '56021',
    '56022', '56023', '56024', '56025', '56026', '56027', '56028',
    '56029', '56030', '56031', '56032', '56033', '56034', '56035',
    '56036', '56037', '56038', '56039', '56040', '56041', '60434',
    '60435',
];

// used function:
$diff_result = array_diff($listing_products_sku, $internal_products_sku);
print_r($diff_result);

Вывод

Array ( ) 

Требуется помощь

Кто-нибудь может объяснить, почему это происходит и как я могу заставить это работать?

1 Ответ

0 голосов
/ 20 февраля 2019

array_diff() возвращает массив из первого массива, содержащий значения, которых нет в остальных массивах (http://php.net/manual/en/function.array-diff.php). Поскольку элемент вашего первого массива уже существует во втором массиве ($internal_products_sku), поэтому он возвращает пустой массив.

Таким образом, чтобы найти разницу, все, что вам нужно сделать, это взять массив $internal_products_sku в качестве первого параметра, а затем проверить

$diff_result = array_diff($internal_products_sku, $listing_products_sku);
print_r($diff_result);

Теперь он вернет массив, значения которого не существуют в$listing_products_sku

...