Maison  >  Article  >  développement back-end  >  Comment vérifier s'il y a des valeurs en double dans un tableau à deux dimensions en php

Comment vérifier s'il y a des valeurs en double dans un tableau à deux dimensions en php

PHPz
PHPzoriginal
2023-04-26 14:21:15996parcourir

En programmation PHP, le tableau est un type de données très important qui nous permet de stocker plusieurs valeurs et d'y accéder via des clés. Un tableau bidimensionnel est un tableau unidimensionnel avec une dimension supplémentaire, nous permettant de stocker des structures de données plus complexes. Cependant, lors de l'utilisation de tableaux bidimensionnels, nous rencontrons souvent un problème, à savoir comment détecter s'il existe des valeurs en double dans le tableau bidimensionnel. Cet article présentera en détail comment déterminer s'il existe des valeurs en double dans un tableau à deux dimensions.

1. Qu'est-ce qu'un tableau bidimensionnel ?

Avant d'expliquer comment déterminer s'il existe des valeurs en double dans un tableau à deux dimensions, nous devons d'abord comprendre ce qu'est un tableau à deux dimensions. Comme brièvement introduit ci-dessus, un tableau à deux dimensions ajoute une autre dimension à un tableau à une dimension, c'est-à-dire que chaque élément n'est plus une valeur unique, mais un tableau. Autrement dit, chaque élément est un tableau contenant plusieurs valeurs, qui peuvent être des chaînes, des nombres, des booléens, etc. de n'importe quel type.

Ce qui suit est un exemple simple de tableau bidimensionnel :

$cars = array(
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
);

Dans cet exemple, nous définissons un tableau bidimensionnel $cars, qui contient quatre éléments du tableau, et chaque élément contient trois valeurs. Nous pouvons accéder à la première valeur du premier élément du tableau $cars via le code suivant :

echo $cars[0][0]; // 输出 Volvo

2. Déterminer s'il existe des valeurs en double dans le tableau bidimensionnel

Dans le développement réel, nous devons souvent déterminer s'il y a des valeurs en double dans le tableau bidimensionnel. S'il y a des valeurs en double. Il existe de nombreuses façons de résoudre ce problème, dont deux que nous présentons ici.

1. Utilisez l'imbrication de boucles foreach

Utilisez l'imbrication de boucles foreach pour parcourir chaque élément dans un tableau bidimensionnel et comparer leurs valeurs tour à tour. Les étapes spécifiques de mise en œuvre sont les suivantes :

① Définissez un tableau $result vide pour enregistrer les éléments sans valeurs en double ;

② Utilisez une boucle foreach pour parcourir le tableau bidimensionnel $source d'origine et supprimez chaque élément à son tour ;

③ Dans Dans la boucle interne, utilisez à nouveau la boucle foreach pour parcourir le tableau $result et comparez si l'élément actuel est le même que chaque élément déjà enregistré dans le tableau $result

④ S'ils sont identiques, sautez ; hors de la boucle interne et continuez à parcourir l'élément suivant ; si si différent, enregistrez l'élément actuel dans le tableau $result, puis quittez la boucle.

Le code spécifique est le suivant :

$source = array(  // 原始的二维数组
  array('name'=>'Tom','age'=>18),
  array('name'=>'Jack','age'=>23),
  array('name'=>'Mary','age'=>21),
  array('name'=>'Tom','age'=>20),
  array('name'=>'Jim','age'=>32)
);

$result = array();  // 存放没有重复值的元素

foreach ($source as $value) {
  $flag = true;  // 标记是否存在重复值
  foreach ($result as $v) {
    if ($value['name'] == $v['name']) {
      $flag = false;
      break;
    }
  }
  if ($flag) {
    $result[] = $value;
  }
}

print_r($result); // 输出结果:Array ( [0] => Array ( [name] => Tom [age] => 18 ) [1] => Array ( [name] => Jack [age] => 23 ) [2] => Array ( [name] => Mary [age] => 21 ) [4] => Array ( [name] => Jim [age] => 32 ) )
Dans le code ci-dessus, nous définissons d'abord un tableau vide $result, puis utilisons une boucle foreach à deux couches pour parcourir le tableau bidimensionnel d'origine $source. S'il s'avère que la valeur du nom de l'élément actuel existe déjà dans le tableau $result, il quittera directement la boucle actuelle et continuera à parcourir l'élément suivant s'il n'y a pas de valeurs en double, l'élément actuel sera enregistré dans le tableau ; Tableau $result.

2. Utilisez la fonction de tableau intégrée de PHP array_unique

PHP a une fonction de tableau intégrée array_unique, qui peut être utilisée pour supprimer les valeurs en double dans un tableau. Cette fonction est très simple, il vous suffit de passer un tableau en paramètre, et elle renverra un nouveau tableau dans lequel toutes les valeurs en double ont été supprimées. Si vous souhaitez utiliser la fonction array_unique pour supprimer les valeurs en double dans un tableau à deux dimensions, nous pouvons utiliser le code suivant :

$source = array(  // 原始的二维数组
  array('name'=>'Tom','age'=>18),
  array('name'=>'Jack','age'=>23),
  array('name'=>'Mary','age'=>21),
  array('name'=>'Tom','age'=>20),
  array('name'=>'Jim','age'=>32)
);

$name_arr = array_column($source, 'name');  // 获取所有name值的数组
$unique_arr = array_unique($name_arr);  // 去重
$result = array();  // 存放没有重复值的元素
foreach ($source as $value) {
  if (in_array($value['name'], $unique_arr)) {
    $result[] = $value;
  }
}
print_r($result); // 输出结果:Array ( [0] => Array ( [name] => Tom [age] => 18 ) [1] => Array ( [name] => Jack [age] => 23 ) [2] => Array ( [name] => Mary [age] => 21 ) [4] => Array ( [name] => Jim [age] => 32 ) )
Dans le code ci-dessus, nous utilisons d'abord la fonction array_column pour obtenir les valeurs de nom​ ​dans tous les tableaux bidimensionnels, puis utilisez la fonction array_unique pour supprimer les valeurs en double. Ensuite, nous parcourons à nouveau le tableau bidimensionnel d'origine et si la valeur du nom de l'élément actuel existe dans $unique_arr, nous enregistrons l'élément actuel dans le tableau $result.

Résumé :

Il existe deux méthodes ci-dessus pour déterminer s'il existe des valeurs en double dans un tableau bidimensionnel PHP. Grâce à ces deux méthodes, vous pouvez rapidement déterminer s'il existe des éléments en double dans un tableau bidimensionnel. Parmi eux, la méthode d'utilisation de la fonction array_unique intégrée de PHP est plus simple, mais elle consomme également plus de ressources informatiques, tandis que la méthode d'utilisation de deux niveaux d'imbrication de boucles foreach est plus flexible et efficace. Les développeurs peuvent choisir la méthode qui leur convient en fonction de leurs besoins spécifiques.

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