Table des matières
1. Problème arrière-plan et structure de données
2. Utilisez Array_Filter () pour un filtrage efficace
2.1 Fonctions d'utilisation et de flèche de base (PHP 7.4)
2.2 Fonctions anonymes compatibles avec les anciennes versions de PHP
3. Réinitialisez la clé du tableau
4. Notes et extensions
Résumer
Maison développement back-end tutoriel php Filtrage du tableau PHP: Retirez efficacement les entrées avec des clés vides dans les collections imbriquées

Filtrage du tableau PHP: Retirez efficacement les entrées avec des clés vides dans les collections imbriquées

Aug 27, 2025 pm 06:36 PM

Filtrage du tableau PHP: Retirez efficacement les entrées avec des clés vides dans les collections imbriquées.

Ce tutoriel détaille comment utiliser la fonction PHP Array_Filter () pour supprimer efficacement les entrées dans des ensembles imbriqués avec une valeur de clé spécifique de NULL à partir d'un tableau multidimensionnel. L'article démontre l'utilisation de base de Array_Filter () avec un exemple de code et explore comment simplifier le code avec les fonctions Arrow et comment réinitialiser les touches de tableau à l'aide de Array_Values ​​() en cas de besoin. Conçu pour fournir une solution simple et professionnelle pour aider les développeurs à optimiser les structures de données.

1. Problème arrière-plan et structure de données

Dans le développement de PHP, nous traitons souvent des données contenant des structures multicouches, telles qu'un tableau contenant plusieurs tableaux (ou ensembles) associatifs, chaque ensemble contenant plusieurs paires de valeurs clés. Parfois, nous devons filtrer l'ensemble du tableau en fonction de la valeur d'une clé spécifique dans la collection. Un scénario commun est lorsqu'une collection a une valeur clé spécifique de NULL (par exemple, null), la collection entière doit être supprimée du tableau principal.

Considérez la structure des données d'échantillonnage suivantes:

 $ array = [
    0 => ["Field" => 1, "Value" => "Strawberry"],
    1 => ["champ" => 2, "valeur" => null],
    2 => ["Field" => 3, "Value" => "Apple"]
]]

Notre objectif est de supprimer toutes les collections internes avec des valeurs de clé de valeur nulles, afin que le tableau final devienne:

 $ array = [
    0 => ["Field" => 1, "Value" => "Strawberry"],
    2 => ["Field" => 3, "Value" => "Apple"]
]]

2. Utilisez Array_Filter () pour un filtrage efficace

PHP fournit une puissante fonction intégrée Array_Filter (), qui est spécifiquement utilisée pour filtrer les éléments dans un tableau. Il accepte un tableau et une fonction de rappel comme paramètres. La fonction de rappel exécute chaque élément du tableau et décide de conserver l'élément en fonction de la valeur booléenne qu'il renvoie.

2.1 Fonctions d'utilisation et de flèche de base (PHP 7.4)

Pour PHP 7.4 et plus tard, nous pouvons utiliser les fonctions Arrow pour simplifier l'écriture des fonctions de rappel et la rendre plus concise.

 $ array = [
    0 => ["Field" => 1, "Value" => "Strawberry"],
    1 => ["champ" => 2, "valeur" => null],
    2 => ["Field" => 3, "Value" => "Apple"]
]]

// Utilisez les fonctions Array_Filter et Arrow pour filtrer l'entrée avec la valeur null $ filteredArray = array_filter ($ array, fn ($ item) =>! IS_NULL ($ item ['value']));

print_r ($ filteredArray);

Résultat de sortie:

 Tableau
(
    [0] => tableau
        (
            [champ] => 1
            [Valeur] => Strawberry
        )

    [2] => tableau
        (
            [champ] => 3
            [valeur] => Apple
        )

)

expliquer:

  • array_filter ($ array, ...): filtre chaque élément dans $ array.
  • fn ($ item) => ...: Il s'agit d'une fonction flèche qui reçoit l'élément de tableau actuellement traité (c'est-à-dire une collection interne) en tant qu'élément $.
  • ! is_null ($ item ['value']): Il s'agit de la logique principale de la fonction de rappel. Il vérifie si la valeur de la clé de valeur dans la collection de $ actuelle n'est pas nulle. Si la valeur n'est pas nul, l'expression renvoie true, array_filter () conservera l'article $; Si la valeur est nul, l'expression renvoie false, l'élément $ sera supprimé.

Il convient de noter que Array_Filter () conserve les touches du tableau d'origine par défaut. Dans la sortie ci-dessus, une fois l'élément de l'index 1 supprimé, les index d'origine 0 et 2 restent inchangés.

2.2 Fonctions anonymes compatibles avec les anciennes versions de PHP

Si votre projet s'exécute sous PHP 7.4, vous pouvez utiliser des fonctions anonymes traditionnelles pour atteindre la même fonction:

 $ array = [
    0 => ["Field" => 1, "Value" => "Strawberry"],
    1 => ["champ" => 2, "valeur" => null],
    2 => ["Field" => 3, "Value" => "Apple"]
]]

// Utilisez Array_Filter et des fonctions anonymes pour filtrer $ filteredArray = array_filter ($ array, fonction ($ item) {
    return! is_null ($ item ['value']);
});

print_r ($ filteredArray);

Sa fonction et sa sortie sont exactement les mêmes que l'utilisation de la fonction flèche.

3. Réinitialisez la clé du tableau

Dans certains cas, vous voudrez peut-être réindexer les clés du tableau après le filtrage, afin qu'ils soient disposés en continu à partir de 0. Pour le moment, vous pouvez utiliser la fonction Array_Values ​​().

 $ array = [
    0 => ["Field" => 1, "Value" => "Strawberry"],
    1 => ["champ" => 2, "valeur" => null],
    2 => ["Field" => 3, "Value" => "Apple"]
]]

// 1. Filtrez le tableau $ filteredArray = array_filter ($ array, fn ($ item) =>! IS_NULL ($ item ['value']));

// 2. Réinitialisez la clé du tableau $ reindexedArray = array_values ​​($ filteredArray);

print_r ($ reindexedArray);

Résultat de sortie:

 Tableau
(
    [0] => tableau
        (
            [champ] => 1
            [Valeur] => Strawberry
        )

    [1] => tableau
        (
            [champ] => 3
            [valeur] => Apple
        )

)

Via array_values ​​(), les index 0 et 2 originaux sont réinitialisés à 0 et 1, ce qui rend les touches de tableau continues et commandées.

4. Notes et extensions

  • Compatibilité de la version PHP: la fonction flèche (fn () => ...) nécessite que la version PHP soit au moins 7.4. Si votre environnement est une ancienne version, utilisez une fonction anonyme (fonction () {return ...;}).
  • Définition de la valeur "vide": dans cet exemple de tutoriel,! Is_null ($ item ['Value']) est utilisé pour déterminer avec précision si la valeur est nul. Si vous devez traiter la chaîne vide '', numéro 0, booléen false, etc. comme valeurs nulles et la supprimer, vous pouvez utiliser! Vide ($ item ['value']). La fonction vide () vérifie si la variable est vide ou non, et ses conditions de jugement sont plus larges.
     // supprime toutes les entrées telles que null, '', 0, false, etc. $ filteredArray = array_filter ($ array, fn ($ item) =>! Vide ($ item ['value']));

    Veuillez sélectionner is_null () ou vide () en fonction de vos besoins commerciaux spécifiques.

  • Considérations de performances: pour la plupart des scénarios d'application, Array_Filter () est une méthode de filtrage très efficace et recommandée. Il est mis en œuvre au niveau C et fonctionne mieux que la boucle manuelle et la construction de nouveaux tableaux.
  • Filtrage des conditions complexes: La fonction de rappel de Array_Filter () peut contenir n'importe quelle logique complexe, telle que la vérification des valeurs de plusieurs clés en même temps, ou pour faire des jugements conditionnels plus complexes.

Résumer

Ce didacticiel détaille comment utiliser la fonction PHP Array_Filter () en conjonction avec les fonctions Arrow (ou les fonctions anonymes) pour supprimer efficacement les collections internes avec une valeur de clé spécifique de NULL d'un tableau multidimensionnel. Dans le même temps, il montre également comment utiliser array_values ​​() pour réinitialiser la clé de tableau après le filtrage. La maîtrise de ces conseils vous aidera à traiter les données de tableau dans PHP de manière plus flexible et professionnelle, optimisant la structure et la lisibilité du code. Dans le développement réel, veuillez sélectionner la logique de filtrage la plus appropriée en fonction de la version PHP et de la définition spécifique de la valeur "vide".

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 de ce site Web
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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expression `` Match '' de Php 8: une alternative supérieure aux chaînes «if-elseif» Expression `` Match '' de Php 8: une alternative supérieure aux chaînes «if-elseif» Aug 02, 2025 pm 02:47 PM

Les expressions de correspondance offrent une alternative plus concise et sûre dans PHP8. Par rapport à IF-ELSEIF et Switch, il effectue automatiquement des comparaisons strictes (===) pour éviter l'erreur des comparaisons de type lâche; 2. La correspondance est une expression qui peut renvoyer directement les valeurs, adaptées aux affectations et aux rendements de la fonction, améliorant la simplicité du code; 3. Le match utilise toujours une vérification stricte pour empêcher les correspondances inattendues entre les entiers, les booléens et les cordes; 4. Prend en charge la correspondance multi-valeurs à bras unique (telles que 0, False, ''), mais les conditions complexes (telles que le jugement de portée) nécessitent toujours IF-ELSEIF; Par conséquent, la correspondance doit être utilisée en premier lors du mappage de la valeur exacte d'une seule variable, tandis que la logique complexe conserve IF-ELSEIF.

Comment travailler avec des tableaux en php Comment travailler avec des tableaux en php Aug 20, 2025 pm 07:01 PM

Phparrayshandledatacollectionsefficantyusing indexedorassociativstructures; theyareCreated withArray () ou [], accessedViakeys, modifiedByAssigment, itérated withoreach, andmanipulatedUsingFunction

Formulaire contextuel sur le bouton de type d'article personnalisé avec tutoriel de soumission Ajax Formulaire contextuel sur le bouton de type d'article personnalisé avec tutoriel de soumission Ajax Aug 08, 2025 pm 11:09 PM

Ce tutoriel fournit des instructions détaillées sur la façon d'ajouter un bouton "Soumettre Quoation" à chaque article de WordPress dans une liste de types d'article personnalisée. Après avoir cliqué, un formulaire HTML personnalisé avec l'ID d'article apparaît et les données du formulaire sont l'affichage de la soumission et du message de réussite de l'AJAX. Le contenu couvre les paramètres pop-up de l'interface utilisateur jQuery frontal, le transfert de données dynamiques, le traitement de la demande AJAX, ainsi que la mise en œuvre de l'accrocheur AJAX WordPress et le traitement des données back-end, en garantissant des fonctions complètes, une expérience utilisateur sécurisée et bonne.

Comparez et contrastez les traits PHP, les classes abstraites et les interfaces avec les cas d'utilisation pratiques. Comparez et contrastez les traits PHP, les classes abstraites et les interfaces avec les cas d'utilisation pratiques. Aug 11, 2025 pm 11:17 PM

Utiliser une interfacestodefineContracts pour les classes liées, garantissant à ce que les implications spécifiques de la responsabilité; 2. ustractClassestoshareCommonLogicamongRelatedClasses whileenforcingInheritance; 3.UsetraTstoreUtyUtilityCodeAcrosses

Déballage des performances: la vérité sur le commutateur PHP vs if-else Déballage des performances: la vérité sur le commutateur PHP vs if-else Aug 02, 2025 pm 04:34 PM

SwitchCanBeslightlyFasterthanif-elsewhenCatingasingsingsvariabeagainstMultiplesCalarValues, en particulier pour les autorités

Comment utiliser la variable $ _cookie en php Comment utiliser la variable $ _cookie en php Aug 20, 2025 pm 07:00 PM

$ _CookieisaphpsuperglobalForAccessingCooKiessentByThebrowser; cookiesAreSetingSetCooKie () BeforeOutput, ReadVia $ _cookie ['name'], Updated Resenderwithnewvalues, anddeletedBysetinganExpiredtimestamp, withsecurit

Décrivez le modèle de conception de l'observateur et sa mise en œuvre dans PHP. Décrivez le modèle de conception de l'observateur et sa mise en œuvre dans PHP. Aug 15, 2025 pm 01:54 PM

TheObserverdesignpatternenablesautomaticnotificationofdependentobjectswhenasubject'sstatechanges.1)Itdefinesaone-to-manydependencybetweenobjects;2)Thesubjectmaintainsalistofobserversandnotifiesthemviaacommoninterface;3)Observersimplementanupdatemetho

Formulaire contextuel du bouton d'article personnalisé WordPress avec guide de soumission Ajax Formulaire contextuel du bouton d'article personnalisé WordPress avec guide de soumission Ajax Aug 08, 2025 pm 11:06 PM

Ce didacticiel détaille comment ajouter un bouton de devis de soumission à l'élément de liste de chaque type de message personnalisé (tel que "immobilier") dans WordPress, et un formulaire HTML personnalisé avec un ID de publication spécifique apparaît après avoir cliqué. L'article couvrira comment créer des popups modaux à l'aide de la boîte de dialogue JQuery UI, passera dynamiquement l'ID de l'article via des attributs de données et utiliser le mécanisme WordPress Ajax pour implémenter la soumission asynchrone des formulaires, tout en traitement des téléchargements de fichiers et afficher les résultats de soumission, offrant ainsi une expérience utilisateur sans couture.

See all articles