Heim > Backend-Entwicklung > PHP-Tutorial > Die PHP-Funktion array_udiff_assoc() wird verwendet, um die Schlüsselnamen und Schlüsselwerte zweier Arrays zu vergleichen und den Differenzsatz zurückzugeben

Die PHP-Funktion array_udiff_assoc() wird verwendet, um die Schlüsselnamen und Schlüsselwerte zweier Arrays zu vergleichen und den Differenzsatz zurückzugeben

黄舟
Freigeben: 2023-03-17 08:48:01
Original
1630 Leute haben es durchsucht

Beispiel

Vergleichen Sie die Schlüsselnamen und Schlüsselwerte von zwei Arrays (verwenden Sie integrierte Funktionen, um Schlüsselnamen zu vergleichen, verwenden Sie benutzerdefinierte benutzerdefinierte Funktionen, um Schlüsselwerte zu vergleichen) und Den Differenzsatz zurückgeben:

<?php
function myfunction($a,$b)
{
if ($a===$b)
{
return 0;
}
return ($a>$b)?1:-1;
}

$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"blue","c"=>"green");

$result=array_udiff_assoc($a1,$a2,"myfunction");
print_r($result);
?>
Nach dem Login kopieren

Definition und Verwendung

Die Funktion array_udiff() wird verwendet, um die Schlüsselnamen und Schlüsselwerte von zwei (oder mehr) Arrays zu vergleichen und die Differenz zurückzugeben .

Hinweis: Diese Funktion verwendet integrierte Funktionen zum Vergleichen von Schlüsselnamen und benutzerdefinierte Funktionen zum Vergleichen von Schlüsselwerten!

Diese Funktion vergleicht die Schlüsselnamen und Schlüsselwerte von zwei (oder mehr) Arrays und gibt ein Differenzarray zurück, das alles im verglichenen Array (Array1) enthält, jedoch nicht in einem anderen Schlüsselname und Schlüsselwert im Parameterarray (Array2 oder Array3 usw.).

Syntax

array_udiff_assoc(array1,array2,array3...,myfunction)
Nach dem Login kopieren
参数描述
array1必需。与其他数组进行比较的第一个数组。
array2必需。与第一个数组进行比较的数组。
array3,...可选。与第一个数组进行比较的其他数组。
myfunction必需。一个定义了可调用比较函数的字符串。如果第一个参数 <, =, > 第二个参数,相应地比较函数必须返回一个 <, =, > 0 的整数。

Technische Details

返回值:返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名和键值。
PHP 版本:5+

array_udiff_assoc() gibt ein Array zurück, das alles in array1 enthält, aber keine anderen Parameter, die Werte ​im Array. Beachten Sie, dass im Gegensatz zu array_diff() und array_udiff() auch Schlüsselnamen zum Vergleich verwendet werden. Der Vergleich von Array-Daten wird mithilfe der vom Benutzer bereitgestellten Rückruffunktion durchgeführt. In dieser Hinsicht ist das Verhalten von array_diff_assoc() genau umgekehrt, das zum Vergleich die interne Funktion 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);
?>
Nach dem Login kopieren

Ergebnis ausführen:

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

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

Das obige ist der detaillierte Inhalt vonDie PHP-Funktion array_udiff_assoc() wird verwendet, um die Schlüsselnamen und Schlüsselwerte zweier Arrays zu vergleichen und den Differenzsatz zurückzugeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage