Dans le langage de programmation PHP, les tableaux sont l'un des types de données les plus couramment utilisés. Les tableaux peuvent stocker un ensemble ordonné de valeurs et peuvent également être utilisés pour implémenter des structures de données telles que des ensembles, des piles et des files d'attente. Cet article abordera les opérations d'ensemble des tableaux PHP, y compris la déduplication de tableaux, la fusion de tableaux, l'intersection de tableaux et les opérations de différence.
Dans le développement réel, nous devons parfois supprimer les éléments en double dans le tableau. PHP fournit certaines fonctions intégrées pour implémenter cette fonction, comme la fonction array_unique(). Cependant, lorsque cette fonction gère des tableaux associatifs, elle conserve la dernière paire clé-valeur en double. Par conséquent, nous pouvons écrire notre propre fonction pour implémenter l'opération de déduplication :
function removeDuplicates($arr) { $output = array(); foreach($arr as $value) { if(!in_array($value, $output)) { array_push($output, $value); } } return $output; }
Dans le code ci-dessus, nous utilisons une boucle foreach pour parcourir le tableau S'il est détecté que la valeur actuelle n'existe pas dans le tableau de sortie, nous ajoutons. il. Cette fonction renvoie un nouveau tableau sans éléments en double.
Dans le développement réel, nous devons parfois fusionner deux ou plusieurs tableaux en un nouveau tableau. PHP fournit les fonctions intégrées array_merge(), array_replace(), array_merge_recursive() et d'autres fonctions qui peuvent implémenter cette fonction. Voyons comment utiliser ces fonctions :
// array_merge()函数 $arr1 = array('apple', 'banana', 'orange'); $arr2 = array('pear', 'grape', 'watermelon'); $newArr = array_merge($arr1, $arr2); // 输出:apple, banana, orange, pear, grape, watermelon // array_replace()函数 $arr1 = array('apple' => 1, 'banana' => 2); $arr2 = array('orange' => 3, 'banana' => 4); $newArr = array_replace($arr1, $arr2); // 输出:apple => 1, banana => 4, orange => 3 // array_merge_recursive()函数 $arr1 = array('apple' => 1, 'banana' => 2); $arr2 = array('orange' => 3, 'banana' => array('x', 'y')); $newArr = array_merge_recursive($arr1, $arr2); // 输出:apple => 1, banana => [2, ['x', 'y']], orange => 3
Lorsque vous utilisez différentes fonctions de fusion de tableaux, vous devez faire attention à leurs différences et à leur utilisation.
Dans le développement réel, nous devons parfois prendre l'intersection de deux ou plusieurs tableaux, c'est-à-dire ne conserver que les éléments communs entre eux. PHP fournit les fonctions intégrées array_intersect(), array_intersect_assoc(), array_uintersect() et d'autres fonctions qui implémentent cette fonction. Jetons un coup d'œil à l'utilisation de ces fonctions :
// array_intersect()函数 $arr1 = array('apple', 'banana', 'orange'); $arr2 = array('pear', 'banana', 'watermelon'); $newArr = array_intersect($arr1, $arr2); // 输出:banana // array_intersect_assoc()函数 $arr1 = array('apple' => 1, 'banana' => 2, 'orange' => 3); $arr2 = array('pear' => 4, 'banana' => 5, 'watermelon' => 6); $newArr = array_intersect_assoc($arr1, $arr2); // 输出:banana => 2 // array_uintersect()函数 function compare($a, $b) { if($a === $b) { return 0; } else { return ($a > $b ? 1 : -1); } } $arr1 = array('apple', 'banana', 'orange'); $arr2 = array('pear', 'banana', 'watermelon'); $newArr = array_uintersect($arr1, $arr2, 'compare'); // 输出:banana
Lorsque vous utilisez différentes fonctions d'intersection de tableaux, vous devez faire attention à leurs différences et à leur utilisation.
Dans le développement réel, nous devons parfois prendre l'ensemble de différence de deux tableaux ou plus, c'est-à-dire supprimer les éléments qui apparaissent dans les tableaux suivants du premier tableau. PHP fournit les fonctions intégrées array_diff(), array_diff_assoc(), array_udiff() et d'autres fonctions pour implémenter cette fonction. Jetons un coup d'œil à l'utilisation de ces fonctions :
// array_diff()函数 $arr1 = array('apple', 'banana', 'orange'); $arr2 = array('pear', 'banana', 'watermelon'); $newArr = array_diff($arr1, $arr2); // 输出:apple, orange // array_diff_assoc()函数 $arr1 = array('apple' => 1, 'banana' => 2, 'orange' => 3); $arr2 = array('pear' => 4, 'banana' => 5, 'watermelon' => 6); $newArr = array_diff_assoc($arr1, $arr2); // 输出:apple => 1, banana => 2, orange => 3 // array_udiff()函数 function compare($a, $b) { if($a === $b) { return 0; } else { return ($a > $b ? 1 : -1); } } $arr1 = array('apple', 'banana', 'orange'); $arr2 = array('pear', 'banana', 'watermelon'); $newArr = array_udiff($arr1, $arr2, 'compare'); // 输出:apple, orange
Lorsque vous utilisez différentes fonctions de différence de tableau, vous devez faire attention à leurs différences et à leur utilisation.
Résumé
En programmation PHP, les tableaux sont l'un des types de données les plus couramment utilisés. En utilisant certaines fonctions intégrées ou en écrivant nos propres fonctions, nous pouvons facilement implémenter diverses opérations sur les tableaux PHP, telles que la déduplication, la fusion, l'intersection, la différence, etc. Dans le développement réel, ces opérations doivent être utilisées de manière flexible selon des scénarios spécifiques pour obtenir de meilleurs résultats.
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!