PHP array_udiff: особливості роботи

Table of Content

Документація каже Вираховує відмінність масивів використовуючи compare_function (callback) для порівняння. Здається просто, але не зовсім.

Функція використовує принцип сортування, і очікує, що одне з наступних значень -1, 0, 1, буде повернуто з compare_function. На stackoverflow знайшов пояснення як це працює. Продублюю тут: В compare_function ви можете повернути 0, сказавши, що об\’єкти однакові, та -1, сказавши, що вони різні\. Примітка: Зайнявшись відладкою даної функції, дізнався, що замість -1 можна повертати 1.

[showhide more_text=”Trubleshoting”]Важливо звернути увагу, на те, що функція повертає *масив, який містить всі значення масиву array1, які не були представлені в інших аргументах (масивах)*.[/showhide]

Приклад виконання

$oldCountry = [\'DE\']; $newCountry = [\'IT\', \'ES\']; $diff = array_udiff($oldCountry, $newCountry, function($a, $b) { return ($a === $b) ? 0 : 1; }); var_export($diff); // array (0 => \'DE\') 

Leave a Reply

Your email address will not be published. Required fields are marked *