2013-03-27 3 views
1

Я пытаюсь сравнить два массива с помощью этого кода:array_diff не показывает разницу

  $diff = array_diff($selected, $checkboxes); 

      echo '<br>selected:'; 
      print_r($selected); 
      echo '<br>original:'; 
      print_r($checkboxes); 
      echo '<br>difference:'; 
      print_r($diff); 

Странная вещь, хотя это приводит к следующему:

selected:Array ([0] => Forum1 [1] => Forum3 [2] => Furniture) 
original:Array ([0] => Forum1 [1] => Forum3 [2] => forum4 [3] => Furniture [4] => Nieuwforum) 
difference:Array ([0] => Forum1 [1] => Forum3 [2] => Furniture) 

Похоже, что Функция array_diff копирует только 'selected'array. Я пробовал несколько вещей, которые отправили в аналогичный вопрос, например, используя array_diff_assoc, но это не имеет значения.

Кто-нибудь знает, что происходит не так?

+0

_Примечание: эта функция проверяет только одно измерение n-мерного массива._ –

ответ

1

Как упоминается в array_diff.

Возвращает массив, содержащий все записи array1, которые не присутствуют ни в одном из других массивов

$diff = array_diff($checkboxes,$selected); 

Codepad Demo.

+0

Так что это значит, мне просто нужно переключить $ checkboxes и $ selected right? Я уже пробовал это, но это результат: selected: Array ([0] => Forum1 [1] => Мебель [2] => Nieuwforum) оригинал: Array ([0] => Forum1 [1 ] => Forum3 [2] => forum4 [3] => Мебель [4] => Nieuwforum) разница: Array ([0] => Forum1 [1] => Forum3 [2] => forum4 [3] => Мебель [4] => Nieuwforum) Так что он все еще не выводит разницу только в целом списке. – user1803370

+0

Да, вам нужно переключить свой массив. Проверьте демо, которое я дал в своем ответе. – Rikesh

+0

Я проверил его, но это также не дает разницы между двумя массивами. Вместо этого он дает совпадения. Я имею в виду: 'Возвращает массив, содержащий все записи из массива1, которые НЕ присутствуют ни в одном из других массивов. До сих пор все решения только возвращают записи, которые присутствуют в другом массиве – user1803370

0

Я думаю, вы ищете array_intersect.

Смежные вопросы