1
Продолжим. Почему array_udiff сравнивает значения первого массива после sorting?Попытка понять поведение 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
... чтобы найти фактические матчи? Как и с вашим вопросом uassoc? – bwoebi
@bwoebi, уже известно, что 'b'> 'a', потому что $ a уже отсортирован. Я не вижу плюсов из этого повторного сравнения. – sectus
О, извините, я здесь не уделял достаточного внимания ... – bwoebi