Position actuelle: Accueil> Derniers articles> Comment combiner efficacement array_column et in_array pour demander si une valeur existe?

Comment combiner efficacement array_column et in_array pour demander si une valeur existe?

M66 2025-04-28

Dans PHP, Array_Column et In_Array sont deux fonctions couramment utilisées, qui sont utilisées pour extraire une colonne dans un tableau et pour vérifier si une valeur existe dans un tableau. L'utilisation de ces deux fonctions en combinaison peut demander efficacement si une valeur dans un tableau multidimensionnel existe.

1. Introduction à la fonction Array_Column

La fonction Array_Column est utilisée pour extraire la valeur d'une colonne à partir d'un tableau multidimensionnel et renvoie un nouveau tableau contenant les valeurs de cette colonne. L'utilisation de base de cette fonction est la suivante:

 array_column($array, $column_key, $index_key);
  • $ Array : le tableau multidimensionnel d'entrée.

  • $ Column_Key : le nom de la colonne ou l'index de la colonne que vous souhaitez extraire.

  • $ index_key (facultatif): Si vous souhaitez que le tableau renvoyé soit clé avec un index, vous pouvez transmettre ce paramètre.

2. Introduction à la fonction in_array

La fonction In_Array est utilisée pour vérifier si une valeur existe dans un tableau. Il renvoie True si la valeur existe, sinon il renvoie False . Son utilisation est la suivante:

 in_array($needle, $haystack, $strict);
  • $ aiguille : la valeur à trouver.

  • $ Haystack : Le tableau est recherché.

  • $ strict (facultatif): Si défini sur true , IN_Array effectuera des comparaisons strictes (c'est-à-dire, vérifiez non seulement si la valeur existe, mais aussi si le type de données correspond).

3. Utilisez Array_Column et In_Array en combinaison

Nous utilisons Array_Column et In_Array pour découvrir efficacement si une valeur existe dans une colonne spécifique dans un tableau multidimensionnel. Par exemple, supposons que nous ayons un tableau d'informations utilisateur multiples et que nous voulons vérifier si un nom d'utilisateur existe.

Supposons qu'il y ait le tableau suivant:

 $users = [
    ['id' => 1, 'name' => 'Tom', 'email' => 'tom@m66.net'],
    ['id' => 2, 'name' => 'Jerry', 'email' => 'jerry@m66.net'],
    ['id' => 3, 'name' => 'Spike', 'email' => 'spike@m66.net'],
];

Nous voulons vérifier si le nom d'utilisateur que Jerry existe dans le tableau. Vous pouvez suivre les étapes suivantes:

  1. Utilisez Array_Column pour extraire la colonne du nom .

  2. Utilisez In_Array pour vérifier si le nom d'utilisateur existe dans le tableau extrait.

 $names = array_column($users, 'name');  // Extraire tous les noms d'utilisateurs
$user_exists = in_array('Jerry', $names);  // examiner 'Jerry' Est-ce qu'il existe

if ($user_exists) {
    echo "utilisateur Jerry exister";
} else {
    echo "utilisateur Jerry 不exister";
}

4. Des requêtes plus complexes

Parfois, nous ne demandons pas seulement une valeur simple, nous devons également vérifier en fonction de plusieurs conditions. En combinant Array_Column et In_Array , nous pouvons trouver des valeurs spécifiques dans des colonnes spécifiques. Cette méthode est très efficace lors du traitement de grands ensembles de données, en évitant le fonctionnement fastidieux de traverser manuellement des tableaux multidimensionnels.

Par exemple, si nous voulons vérifier si une certaine adresse e-mail existe:

 $emails = array_column($users, 'email');  // 提取所有utilisateur的Mail
$email_exists = in_array('jerry@m66.net', $emails);  // examinerMailEst-ce qu'il existe

if ($email_exists) {
    echo "Mail jerry@m66.net exister";
} else {
    echo "Mail jerry@m66.net 不exister";
}

5. Considérations de performance

Dans PHP, Array_Column et In_Array sont des fonctions relativement efficaces, en particulier lorsqu'ils traitent des tableaux plus grands. L'utilisation directement de In_Array pour rechercher des tableaux multidimensionnels traversera l'ensemble du tableau, ce qui est moins efficace. En utilisant d'abord Array_Column pour extraire la colonne cible, puis en utilisant In_Array pour la recherche, les opérations de comparaison inutiles peuvent être réduites et les performances peuvent être améliorées.

Résumer

L'utilisation de Array_Column et IN_ARRAY en combinaison est une manière très efficace, particulièrement adaptée à la recherche d'une valeur dans un tableau multidimensionnel. En extraite d'abord les colonnes requises, puis en utilisant In_Array pour vérifier si la valeur cible existe, vous pouvez améliorer l'efficacité de la requête et réduire la complexité de votre code. Cette approche peut améliorer considérablement les performances lors du traitement des ensembles de données plus importants.