Heim  >  Artikel  >  Backend-Entwicklung  >  php array_udiff_assoc berechnet die Differenzmenge am Beispiel zweier Arrays

php array_udiff_assoc berechnet die Differenzmenge am Beispiel zweier Arrays

高洛峰
高洛峰Original
2017-01-17 13:59:301410Durchsuche

Die PHP-Funktion array_udiff() wird verwendet, um die Schlüsselnamen und Schlüsselwerte von zwei (oder mehr) Arrays zu vergleichen und die Differenz zurückzugeben. Dieser Vergleich wird über eine vom Benutzer bereitgestellte Rückruffunktion durchgeführt. Wenn das erste Argument als kleiner, gleich oder größer als das zweite Argument angesehen wird, muss eine Ganzzahl kleiner als Null, gleich Null bzw. größer als Null zurückgegeben werden. In diesem Artikel wird die Verwendung der Funktion array_udiff() anhand von Beispielen erläutert:

array_udiff_assoc – berechnet den Differenzsatz von Arrays mit Indexprüfung und verwendet die Callback-Funktion zum Vergleichen von Daten

Basic Syntax:

array array_udiff_assoc ( array $array1 , array $array2 [, array $ ... ], callable $data_compare_func )
Dieser Vergleich wird über eine vom Benutzer bereitgestellte Rückruffunktion durchgeführt. Wenn das erste Argument als kleiner, gleich oder größer als das zweite Argument angesehen wird, muss eine Ganzzahl kleiner als Null, gleich Null bzw. größer als Null zurückgegeben werden.

Hinweis: Beachten Sie, dass diese Funktion nur eine Dimension des mehrdimensionalen Arrays überprüft. Natürlich können Sie array_udiff_assoc($array1[0], $array2[0], "some_comparison_func"); verwenden, um tiefere Dimensionen zu überprüfen.

Parametereinführung

php array_udiff_assoc 计算两个数组的差集实例

Rückgabewert

array_udiff_assoc() gibt ein Array zurück, das alles in array1, aber nicht in anderen Werten enthält ​im Parameterarray. Beachten Sie, dass im Gegensatz zu array_diff() und array_udiff() auch Schlüsselnamen zum Vergleich verwendet werden. Der Vergleich von Array-Daten erfolgt mithilfe vom Benutzer bereitgestellter Rückruffunktionen. Dies ist das entgegengesetzte Verhalten zu array_diff_assoc(), das eine interne Funktion zum Vergleich verwendet.

Instanz

<?php
class cr {
  private $priv_member;
  function cr($val) {
    $this->priv_member = $val;
  }
  static function comp_func_cr($a, $b) {
    if ($a->priv_member === $b->priv_member) return 0;
    return ($a->priv_member > $b->priv_member) ? 1 : -1;
  }
}
$a = array(
  "0.1" => new cr(9) ,
  "0.5" => new cr(12) ,
  0 => new cr(23) ,
  1 => new cr(4) ,
  2 => new cr(-15) ,
);
$b = array(
  "0.2" => new cr(9) ,
  "0.5" => new cr(22) ,
  0 => new cr(3) ,
  1 => new cr(4) ,
  2 => new cr(-15) ,
);
$result = array_udiff_assoc($a, $b, array(
  "cr",
  "comp_func_cr"
));
print_r($result);
?>

Laufergebnis:

Array
(
  [0.1] => cr Object
    (
      [priv_member:private] => 9
    )
 
  [0.5] => cr Object
    (
      [priv_member:private] => 12
    )
 
  [0] => cr Object
    (
      [priv_member:private] => 23
    )
)

Im obigen Beispiel können Sie sehen, dass das Schlüssel-Wert-Paar „1“ => new cr(4) gleichzeitig in beiden Arrays vorkommt und daher nicht in der Ausgabe dieser Funktion enthalten ist.

Danke fürs Lesen, ich hoffe, es kann Ihnen helfen, vielen Dank für Ihre Unterstützung dieser Website!

Weitere PHP-Array_udiff_assoc-Beispiele zur Berechnung der Differenzmenge zweier Arrays finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn