Heim >Backend-Entwicklung >PHP-Tutorial >Array-Funktionen in PHP8: Beispiele für verschiedene Operationen von array_intersect_assoc()

Array-Funktionen in PHP8: Beispiele für verschiedene Operationen von array_intersect_assoc()

王林
王林Original
2023-05-18 08:13:441477Durchsuche

PHP-Sprache ist eine weit verbreitete Sprache in der Webentwicklung und serverseitigen Skriptprogrammierung. Ihre leistungsstarke Array-Funktionsunterstützung ist eine der wichtigen Komponenten ihrer hervorragenden Leistung. In PHP8 wurde die neue Array-Funktion array_intersect_assoc() eingeführt, die eine effizientere Leistung und eine bequemere Verwendung beim Betrieb assoziativer Arrays bietet. In diesem Artikel wird die Verwendung der Funktion array_intersect_assoc() vorgestellt und verschiedene Beispiele zur Veranschaulichung der verschiedenen Betriebsmethoden und praktischen Anwendungsszenarien bereitgestellt.

1. Grundlegende Verwendung von array_intersect_assoc()

Die Funktion array_intersect_assoc() wird verwendet, um zwei oder mehr assoziative Arrays zu vergleichen und ein neues assoziatives Array zurückzugeben, das Elemente mit gleichen Schlüsseln und Werten für alle Eingabearrays enthält. Die Syntax lautet wie folgt:

array_intersect_assoc(array1,array2,array3,...)

wobei jeder Eingabeparameter ein assoziatives Array ist, das verglichen wird, um denselben Schlüssel und Wert zu finden. Der Rückgabewert ist ein neues assoziatives Array, das Elemente mit Schlüsseln und Werten enthält, die denen aller Eingabearrays entsprechen. Hier ist ein einfaches Beispiel:

$array1 = array("a"=>"red","b"=>"green","c"=>"blue");
$array2 = array("a"=>"red","b"=>"blue");
$result = array_intersect_assoc($array1,$array2);
print_r($result);

Die Ausgabe lautet:

Array ( [a] => red )

Das liegt daran, dass nur das Element mit dem Schlüssel „a“ in beiden Eingabearrays vorhanden ist und den gleichen Wert hat.

2. Der Unterschied zwischen array_intersect_assoc() und array_intersect()

Der Unterschied zur Funktion array_intersect() besteht darin, dass die Funktion array_intersect_assoc() nicht nur die Werte vergleicht ​​von Elementen, sondern auch Schlüssel zum Vergleichen von Elementen. Daher werden Schlüssel-Wert-Paarbeziehungen genauer erkannt und verarbeitet. Schauen wir uns ein Beispiel an, um diesen Unterschied zu veranschaulichen: array_intersect()函数不同的是,array_intersect_assoc()函数不仅比较元素的值,而且还比较元素的键。因此,它更精确地检测和处理键值对的关系。我们来看一个例子来说明这个区别:

$array1 = array("a"=>1,"b"=>2,"c"=>3);
$array2 = array(2=>"b",3=>"a",4=>"c");
$result1 = array_intersect($array1,$array2);
$result2 = array_intersect_assoc($array1,$array2);
print_r($result1);
print_r($result2);

输出结果为:

Array ( [b] => 2 )
Array ( [a] => 1 )

可以看到,array_intersect()函数仅检测元素的值,找到相同的值"2",而array_intersect_assoc()函数不仅找到值相同的元素"2",还找到键和值都相同的元素"a"。这就是两个函数之间的区别之一。

三、多个数组的比较运算

array_intersect_assoc()函数不仅可以比较两个数组,也可以比较多个数组。下面的示例将演示如何比较三个数组:

$array1 = array("a"=>"red","b"=>"green","c"=>"blue");
$array2 = array("a"=>"red","b"=>"blue");
$array3 = array("a"=>"red","b"=>"green");
$result = array_intersect_assoc($array1,$array2,$array3);
print_r($result);

输出结果为:

Array ( [a] => red )

这是因为只有键为"a"的元素在三个输入数组中都存在且值相等。

四、缺少元素的情况

如果不同输入数组中键不相等或值不相等,则不会包含在结果中。如果其中一个输入数组缺少某个键,则该键也不会被包含在结果中。例如:

$array1 = array("a"=>"red","b"=>"green","c"=>"blue");
$array2 = array("a"=>"red","d"=>"blue");
$result = array_intersect_assoc($array1,$array2);
print_r($result);

输出结果为空数组。

五、保留键名或键的排序

在默认情况下,array_intersect_assoc()函数会保留键名并保持它们在结果数组中的相对顺序。例如:

$array1 = array("a"=>"red","b"=>"green","c"=>"blue");
$array2 = array("a"=>"red","b"=>"blue");
$result = array_intersect_assoc($array1,$array2);
print_r($result);

输出结果为:

Array ( [a] => red [b] => green )

如果要按键名的字母顺序排序结果,可以使用ksort()函数,如下所示:

$array1 = array("a"=>"red","b"=>"green","c"=>"blue");
$array2 = array("a"=>"red","b"=>"blue");
$result = array_intersect_assoc($array1,$array2);
ksort($result);
print_r($result);

输出结果为:

Array ( [a] => red [b] => green )

如果不保留键名,只保留元素值,则可以使用array_intersect()函数,如下所示:

$array1 = array("red","green","blue");
$array2 = array("red","blue");
$result = array_intersect($array1,$array2);
print_r($result);

输出结果为:

Array ( [0] => red [2] => blue )

六、总结

array_intersect_assoc()函数是PHP8中引入的新数组函数之一,它在关联数组的比较和操作中更精确、高效和方便。本文提供了多种示例,介绍了如何使用它进行多种运算和操作,包括基本用法、与array_intersect()rrreee

Das Ausgabeergebnis ist: 🎜rrreee🎜Wie Sie sehen können, erkennt die Funktion array_intersect() nur den Wert des Elements und findet denselben Wert „2“, während die Funktion array_intersect_assoc() nicht nur das Element „2“ mit demselben Wert findet, sondern auch das Element „a“ mit demselben Schlüssel und Wert. Dies ist einer der Unterschiede zwischen den beiden Funktionen. 🎜🎜3. Vergleichsoperation mehrerer Arrays🎜🎜Die Funktion array_intersect_assoc() kann nicht nur zwei Arrays, sondern auch mehrere Arrays vergleichen. Das folgende Beispiel zeigt, wie drei Arrays verglichen werden: 🎜rrreee🎜Das Ausgabeergebnis lautet: 🎜rrreee🎜Dies liegt daran, dass nur das Element mit dem Schlüssel „a“ in den drei Eingabearrays vorhanden ist und den gleichen Wert hat. 🎜🎜4. Fall fehlender Elemente🎜🎜Wenn die Schlüssel oder Werte in verschiedenen Eingabearrays nicht gleich sind, werden sie nicht in das Ergebnis einbezogen. Wenn in einem der Eingabearrays ein Schlüssel fehlt, wird dieser Schlüssel nicht in das Ergebnis einbezogen. Zum Beispiel: 🎜rrreee🎜Das Ausgabeergebnis ist ein leeres Array. 🎜🎜5. Schlüsselnamen oder Reihenfolge der Schlüssel beibehalten🎜🎜Standardmäßig behält die Funktion array_intersect_assoc() Schlüsselnamen bei und behält ihre relative Reihenfolge im Ergebnisarray bei. Zum Beispiel: 🎜rrreee🎜Das Ausgabeergebnis ist: 🎜rrreee🎜Wenn Sie die Ergebnisse alphabetisch nach Schlüsselnamen sortieren möchten, können Sie die Funktion ksort() verwenden, wie unten gezeigt: 🎜rrreee🎜The Das Ausgabeergebnis lautet: 🎜rrreee🎜 Wenn Sie nicht den Schlüsselnamen, sondern nur den Elementwert beibehalten, können Sie die Funktion array_intersect() wie unten gezeigt verwenden: 🎜rrreee🎜Das Ausgabeergebnis lautet : 🎜rrreee🎜 6. Zusammenfassung🎜🎜array_intersect_assoc( )-Funktion ist eine der neuen Array-Funktionen, die in PHP8 eingeführt wurden. Sie ist präziser, effizienter und bequemer beim Vergleich und Betrieb assoziativer Arrays. Dieser Artikel bietet eine Vielzahl von Beispielen und stellt vor, wie man damit verschiedene Berechnungen und Operationen durchführt, einschließlich der grundlegenden Verwendung, der Unterschiede zur Funktion array_intersect(), Vergleichsoperationen mehrerer Arrays und fehlender Elemente Schlüsselnamen oder Reihenfolge der Schlüssel usw. Für PHP-Entwickler kann die Kenntnis und Beherrschung dieser Vorgänge die Handhabung verschiedener Anforderungen an assoziative Array-Operationen einfacher und effizienter machen. 🎜

Das obige ist der detaillierte Inhalt vonArray-Funktionen in PHP8: Beispiele für verschiedene Operationen von array_intersect_assoc(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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