Maison >développement back-end >tutoriel php >Fonctions de tableau en PHP8 : exemples de diverses opérations de array_intersect_assoc()

Fonctions de tableau en PHP8 : exemples de diverses opérations de array_intersect_assoc()

王林
王林original
2023-05-18 08:13:441477parcourir

Le langage PHP est un langage largement utilisé dans le développement Web et la programmation de scripts côté serveur. Sa puissante prise en charge des fonctions de tableau est l'un des éléments importants de ses excellentes performances. En PHP8, la nouvelle fonction de tableau array_intersect_assoc() a été introduite, qui offre des performances plus efficaces et une utilisation plus pratique lors de l'utilisation de tableaux associatifs. Cet article présentera l'utilisation de la fonction array_intersect_assoc() et fournira une variété d'exemples pour illustrer ses différentes méthodes de fonctionnement et ses scénarios d'application pratiques.

1. Utilisation de base de la fonction array_intersect_assoc()

array_intersect_assoc() est utilisée pour comparer deux ou plusieurs tableaux associatifs et renvoyer un nouveau tableau associatif contenant Tous les tableaux d'entrée ont des éléments avec clés et valeurs égales. La syntaxe est la suivante :

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

où chaque paramètre d'entrée est un tableau associatif, qui sera comparé pour trouver la même clé et la même valeur. La valeur de retour est un nouveau tableau associatif contenant des éléments avec des clés et des valeurs égales à tous les tableaux d'entrée. Voici un exemple simple :

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

Le résultat est :

Array ( [a] => red )

C'est parce que seul l'élément avec la clé "a" existe dans les deux tableaux d'entrée et a une valeur égale.

2. La différence entre array_intersect_assoc() et array_intersect()

La différence avec la fonction array_intersect() est que array_intersect_assoc( ) compare non seulement les valeurs des éléments, mais également les clés des éléments. Par conséquent, il détecte et gère les relations entre paires clé-valeur avec plus de précision. Regardons un exemple pour illustrer cette différence : <code>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

Le résultat de sortie est : #🎜🎜#rrreee#🎜🎜#Comme vous pouvez le voir, la fonction array_intersect() ne détecte que la valeur des éléments, la même valeur "2" est trouvée et la fonction array_intersect_assoc() trouve non seulement l'élément "2" avec la même valeur, mais trouve également l'élément "a" avec le même clé et valeur. C'est l'une des différences entre les deux fonctions. #🎜🎜##🎜🎜#3. Opérations de comparaison de plusieurs tableaux#🎜🎜##🎜🎜#array_intersect_assoc()La fonction peut non seulement comparer deux tableaux, mais également comparer plusieurs tableaux. L'exemple suivant montre comment comparer trois tableaux : #🎜🎜#rrreee#🎜🎜#La sortie sera : #🎜🎜#rrreee#🎜🎜#C'est parce que seul l'élément avec la clé "a" est dans les trois entrées tableaux Les deux existent et ont des valeurs égales. #🎜🎜##🎜🎜#4. Éléments manquants #🎜🎜##🎜🎜#Si les clés ou valeurs des différents tableaux d'entrée ne sont pas égales, elles ne seront pas incluses dans le résultat. Si une clé est manquante dans l'un des tableaux d'entrée, cette clé ne sera pas incluse dans le résultat. Par exemple : #🎜🎜#rrreee#🎜🎜#Le résultat de sortie est un tableau vide. #🎜🎜##🎜🎜#5. Conserver les noms de clés ou le tri des clés#🎜🎜##🎜🎜#Par défaut, la fonction array_intersect_assoc() conservera les noms de clés et les conservera dans le résultat Relatif ordre dans un tableau. Par exemple : #🎜🎜#rrreee#🎜🎜#Le résultat de sortie est : #🎜🎜#rrreee#🎜🎜#Si vous souhaitez trier les résultats par ordre alphabétique par nom de clé, vous pouvez utiliser la fonction ksort() , comme suit Affichage : #🎜🎜#rrreee#🎜🎜#Le résultat de sortie est : #🎜🎜#rrreee#🎜🎜#Si vous ne conservez pas le nom de la clé, mais conservez uniquement la valeur de l'élément, vous peut utiliser la fonction array_intersect(), comme indiqué ci-dessous : #🎜🎜#rrreee#🎜🎜#Le résultat de sortie est : #🎜🎜#rrreee#🎜🎜# 6. Résumé#🎜🎜## 🎜🎜#array_intersect_assoc()La fonction estPHP8 Une des nouvelles fonctions de tableau introduites dans , Plus précise, plus efficace et plus pratique dans la comparaison et le fonctionnement des tableaux associatifs. Cet article fournit une variété d'exemples et présente comment l'utiliser pour effectuer divers calculs et opérations, y compris l'utilisation de base, les différences par rapport à la fonction array_intersect(), les opérations de comparaison de plusieurs tableaux et les éléments manquants. noms de clés ou ordre des clés, etc. Pour les développeurs PHP, se familiariser et maîtriser ces opérations peut rendre plus facile et plus efficace la gestion des diverses exigences liées aux opérations de tableaux associatifs. #🎜🎜#

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn