Почему array_udiff() внутренне сравнивает значения из одного и того же входного массива?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Почему array_udiff() внутренне сравнивает значения из одного и того же входного массива?

Сообщение Anonymous »

Продолжим. Почему array_udiff сравнивает значения первого массива после сортировки?

Код: Выделить всё

$compare = function($a, $b) use(&$iteration_count)
{
echo("$a : $b\n");
$iteration_count++;
return strcmp($a, $b);
};

$a = array('a', 'b', 'c');
$b = array('x', 'y', 'z');

$iteration_count = 0;
echo "array_udiff:" . json_encode(array_udiff($a, $b, $compare)) . "\n";
echo "iterations: $iteration_count\n\n";
Вывод

Код: Выделить всё

b : a  // sorting $a started
c : b
y : x  // sorting $b started
z : y
a : x  // comparison started
a : b  //                    -- what for?
b : x
b : c  //                    -- what for?
c : x
array_udiff:["a","b","c"]
iterations: 9
http://3v4l.org/3Me8o#v500
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»