Maison  >  Article  >  développement back-end  >  Conseils pratiques pour les fonctions PHP : array_intersect()

Conseils pratiques pour les fonctions PHP : array_intersect()

PHPz
PHPzoriginal
2023-06-20 08:33:183952parcourir

En PHP, array_intersect() est une fonction de tableau très utile qui peut être utilisée pour comparer des éléments identiques entre deux ou plusieurs tableaux et renvoyer l'intersection du tableau de ces éléments. Cet article présentera l'utilisation de base de la fonction array_intersect() et quelques conseils pratiques pour aider les développeurs PHP à mieux utiliser cette fonction.

1. Syntaxe de la fonction et utilisation de base

array_intersect() La syntaxe de la fonction est la suivante :

array_intersect ( array $array1 , array $array2 [, array $... ] ) : array

Cette fonction nécessite au moins deux tableaux comme paramètres, mais peut accepter plusieurs tableaux. La valeur de retour de la fonction est un nouveau tableau contenant les éléments d'intersection de tous les tableaux. Par exemple :

$arr1 = array('apple', 'banana', 'pear');
$arr2 = array('banana', 'orange', 'grape');
$arr3 = array('banana', 'kiwi', 'pear');
$result = array_intersect($arr1, $arr2, $arr3);
print_r($result); //输出结果为:array('banana');

Dans cet exemple, nous définissons 3 tableaux : $arr1, $arr2 et $arr3, chacun contenant des noms de fruits. Utilisez la fonction array_intersect($arr1, $arr2, $arr3) pour calculer l'intersection de ces tableaux et imprimer le résultat renvoyé. Il s'avère que le seul élément d'intersection dans ces tableaux est "banane".

2. Compétences pratiques

En plus de l'utilisation de base, la fonction array_intersect() possède également quelques compétences pratiques, qui seront présentées une par une ci-dessous.

  1. Supprimer les éléments en double

Si nous avons un tableau dans lequel il peut y avoir des éléments en double, nous pouvons utiliser la fonction array_unique() pour supprimer ces éléments en double. Cependant, si nous voulons conserver uniquement les éléments en double et supprimer d’autres éléments, nous pouvons utiliser la fonction array_intersect(). Par exemple :

$arr1 = array('apple', 'banana', 'orange', 'pear', 'banana', 'kiwi');
$arr2 = array_unique($arr1); //去除重复元素
$result = array_intersect($arr1, $arr2); //返回重复元素
print_r($result); //输出结果为:array('banana');

Dans cet exemple, nous définissons un tableau $arr1 contenant des éléments en double, utilisons d'abord la fonction array_unique() pour supprimer ces éléments en double, puis utilisons la fonction array_intersect() pour calculer l'intersection de $arr1 et $ arr2. Le résultat est uniquement Contient l'élément répété "banane" dans le tableau.

  1. Comparez l'intersection de plusieurs tableaux

La fonction array_intersect() peut accepter plusieurs tableaux comme paramètres, ce qui nous permet de comparer facilement l'intersection de plusieurs tableaux. Par exemple, nous pouvons utiliser array_intersect($arr1, $arr2, $arr3) pour calculer l'intersection entre 3 tableaux, mais que se passe-t-il si nous avons plusieurs tableaux à comparer ? Ceci peut être réalisé en utilisant une boucle for, comme indiqué ci-dessous :

$arr1 = array('apple', 'banana', 'pear');
$arr2 = array('banana', 'orange', 'grape');
$arr3 = array('banana', 'kiwi', 'pear');
$arr4 = array('banana', 'cherry', 'pear');
$cnt = count(func_get_args()); //获取参数个数
for ($i = 1; $i < $cnt; $i++) {
    ${"arr" . $i} = array_intersect(${"arr" . ($i-1)}, ${"arr" . $i}); //比较数组交集
}
print_r($arr1); //输出结果为:array('banana');

Dans cet exemple, nous définissons 4 tableaux : $arr1, $arr2, $arr3 et $arr4, chacun contenant des noms de fruits. À l'aide d'une boucle for, nous comparons l'intersection de ces tableaux et stockons les résultats dans le même tableau. Enfin, nous imprimons le tableau contenant les éléments d'intersection, et le résultat ne contient que "banane". Cet exemple illustre la commodité de la fonction array_intersect() lors de la comparaison de plusieurs tableaux.

  1. Conserver les noms de clés du tableau d'origine

Par défaut, la fonction array_intersect() conservera les noms de clés du tableau d'origine. Mais si nous voulons forcer la réinitialisation du nom de la clé, nous pouvons utiliser la fonction array_values(). Par exemple :

$arr1 = array('name' => 'Tom', 'age' => 32);
$arr2 = array('name' => 'Jerry', 'age' => 25);
$arr3 = array_intersect($arr1, $arr2);
print_r($arr3); //输出结果为:array('name' => 'Jerry', 'age' => 25);
$arr4 = array_values(array_intersect($arr1, $arr2));
print_r($arr4); //输出结果为:array('Jerry', 25);

Dans cet exemple, nous définissons deux tableaux associatifs $arr1 et $arr2, qui contiennent des informations de base. Utilisez la fonction array_intersect() pour comparer l'intersection des deux tableaux et conserver les noms de clés d'origine, puis utilisez à nouveau la fonction print_r() pour imprimer le résultat. La sortie contient désormais les noms de clés d'origine « nom » et « âge ». Ensuite, nous utilisons la fonction array_values() pour supprimer les clés d'origine, ne laissant que les éléments d'intersection et imprimons le résultat. À l'heure actuelle, le résultat de sortie contient uniquement les éléments d'intersection "Jerry" et "25", indiquant que la fonction array_values() a supprimé les noms de clés d'origine.

  1. Comparez l'intersection de tableaux multidimensionnels

La fonction array_intersect() convient également à la comparaison de tableaux multidimensionnels. Par exemple, nous pouvons utiliser array_intersect($arr1, $arr2, $arr3) pour comparer l'intersection de plusieurs tableaux unidimensionnels, ou nous pouvons utiliser array_intersect($arr1[0], $arr2[0], $arr3[0 ]) à Compare l’intersection de tableaux multidimensionnels. Par exemple :

$arr1 = array(
    array('name' => 'Tom', 'age' => 32),
    array('name' => 'Jerry', 'age' => 25),
    array('name' => 'Mickey', 'age' => 28)
);
$arr2 = array(
    array('name' => 'Jerry', 'age' => 25),
    array('name' => 'Mickey', 'age' => 28),
    array('name' => 'Donald', 'age' => 30)
);
$arr3 = array(
    array('name' => 'Tom', 'age' => 32),
    array('name' => 'Jerry', 'age' => 25),
    array('name' => 'Mickey', 'age' => 28)
);
$arr4 = array_intersect($arr1[0], $arr2[0], $arr3[0]);
print_r($arr4); //输出结果为:array('name' => 'Jerry', 'age' => 25);

Dans cet exemple, nous définissons 4 tableaux multidimensionnels : $arr1, $arr2, $arr3 et $arr4. Utilisez la fonction array_intersect() pour comparer l'intersection de ces tableaux, et le résultat ne contient que des informations sur "Jerry". Cet exemple montre que la fonction array_intersect() convient à la comparaison de tableaux multidimensionnels et que la syntaxe est très simple.

3.Résumé

La fonction array_intersect() est très pratique dans le développement PHP. Elle peut facilement comparer les intersections entre plusieurs tableaux et renvoyer des éléments répétés. Cet article présente l'utilisation de base de cette fonction et certaines compétences pratiques, notamment la suppression des éléments en double, la comparaison de l'intersection de plusieurs tableaux, la conservation des noms de clés de tableau d'origine et la comparaison de l'intersection de tableaux multidimensionnels. Ces techniques peuvent aider les développeurs PHP à mieux utiliser la fonction array_intersect() et à améliorer l'efficacité du développement et la qualité du code.

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