Как array_udiff() перемещается по значениям входных массивов?Php

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

Сообщение Anonymous »

У меня есть следующая простая функция, чтобы попытаться понять функцию array_udiff().

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

function udiffCompare( $value, $value2 )
{
echo "$value - $value2
";
}

$newArray = ['value2' => 2, 'value3' => 3, 'value4' => 4];
$newArray2 = ['value2' => 2, 'value3' => 3, 'value4' => 4];
array_udiff( $newArray, $newArray2, 'udiffCompare' );
Я ожидаю, что это просто вернется:

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

2 - 2
3 - 3
4 - 4
Однако он возвращается:

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

3 - 2
4 - 3
3 - 2
4 - 3
4 - 4
4 - 3
4 - 3
3 - 2
Это наводит меня на мысль, что я чего-то не понимаю в том, как работает array_udiff().
Даже если я замените приведенный выше оператор echo на:

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

if( $value == $value2 ) { return 1; } else { return 0; }
выведенный массив совершенно пуст, хотя все значения, переданные в функцию, равны.
Может кто-нибудь пролить свет, пожалуйста ?

Подробнее здесь: https://stackoverflow.com/questions/174 ... put-arrays
Ответить

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

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

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

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

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