preload
Aug 08

Auf der Manual-Seite zu array_diff lautet die Beschreibung „Ermittelt die Unterschiede zwischen Arrays“ und „Vergleicht array1 mit array2 und gibt die Unterschiede zurück.“ Dieser Beschreibung nach könnte man davon ausgehen, dass der folgende Code-Abschnitt die Elemente von A liefert, die nicht in B vorkommen und die von B, die nicht in A vorkommen; eben „die Unterschiede“.

<?php
  
  $aElementA = array(1, 2, 3, 4);
  $aElementB = array(2, 4, 6, 9);
  
  $aResult = array_diff($aElementA, $aElementB);
  
  var_dump($aResult);
  
?>

Das evtl. erwartete Ergebnis, nämlich array(1, 3, 6, 9) wird nicht geliefert. Stattdessen lautet das Ergebnis array(1, 3)

Ein paar Zeilen weiter unten auf der Manual-Seite wird der erste Parameter beschrieben als „Das Array, das verglichen werden soll“ und der zweite Parameter als „Das Array, mit dem verglichen werden soll“.

Eine etwas besser verständliche Beschreibung für array_diff könnte lauten Liefert A ohne B, denn genau das ist das Ergebnis des Aufrufs: Elemente aus Menge A, die nicht in Menge B vorkommen.

Leave a Reply