Position actuelle: Accueil> Derniers articles> Combinaison array_fill () et array_filter () pour traiter les valeurs d'entrée par lots

Combinaison array_fill () et array_filter () pour traiter les valeurs d'entrée par lots

M66 2025-06-05

Dans le développement quotidien de PHP, en particulier lors du traitement des formulaires ou des soumissions de données par lots, nous rencontrons souvent la nécessité d'initialiser et de filtrer un grand nombre de valeurs d'entrée. Cet article présentera comment utiliser les deux fonctions de Array_Fill () et Array_Filter () pour implémenter le filtrage d'initialisation et de validité des valeurs d'entrée par lots.

1. Fonction Introduction

  • array_fill (int $ start_index, int $ count, valeur mixte $): array

    Utilisé pour créer un tableau et le remplir avec la valeur spécifiée, adaptée à l'initialisation d'une collecte de données à structure fixe.

  • array_filter (array $ array ,? callable $ callback = null, int $ mode = 0): array

    Utilisé pour filtrer les valeurs dans un tableau. Par défaut, tous les éléments équivalents à false (tels que 0 , false , null , '' , etc.) dans le tableau seront supprimés, et une logique de filtrage plus complexe peut être implémentée via des fonctions de rappel personnalisées.

2. Scénario réel: Formez le traitement des données de soumission par lots

Supposons que nous travaillions sur une soumission par lots avec 10 entrées. Chaque entrée est un champ de nom entré par l'utilisateur. Nous espérons:

  1. Initialiser ces entrées en tant que chaînes vides par défaut;

  2. Filtrez des éléments non filtrés et seuls les éléments avec des noms remplis sont conservés pour le prochain traitement ou le stockage.

Exemple de code:

 <?php

// Supposons que les données soumises par l&#39;utilisateur sont les suivantes(Partiellement vide)
$submittedData = [
    'Alice',
    '',
    'Bob',
    null,
    'Charlie',
    '',
    '  ',
    'David',
    false,
    'Eve'
];

// premier pas:initialisation 10 entrées,La valeur par défaut est une chaîne vide(Empêcher les données incomplètes lorsqu&#39;elles ne sont pas soumises)
$inputCount = 10;
$defaultData = array_fill(0, $inputCount, '');

// Étape 2:将用户提交的数据合并到initialisation数组中,Éviter l&#39;index manquant
$mergedData = array_replace($defaultData, $submittedData);

// Étape 3:utiliser array_filter Filtre les données non valides(Comme une chaîne vide、null、false、Espaces, etc.)
$validData = array_filter($mergedData, function ($value) {
    // utiliser trim Retirer les espaces,Alors déterminez s&#39;il est vide
    return trim($value) !== '';
});

// Étape 4:Traiter des données valides(Si sauvé、vérifier、Sortir)
foreach ($validData as $index => $name) {
    echo "1 et 1 " . ($index + 1) . " Entrée valide de l&#39;élément:{$name}\n";
}

Résultat de sortie:

 1 et 1 1 Entrée valide de l&#39;élément:Alice
1 et 1 3 Entrée valide de l&#39;élément:Bob
1 et 1 5 Entrée valide de l&#39;élément:Charlie
1 et 1 8 Entrée valide de l&#39;élément:David
1 et 1 10 Entrée valide de l&#39;élément:Eve

3. Développez une utilisation pratique

Cette combinaison est très utile dans des applications pratiques, telles que:

  • Babillard de messages multi-lignes;

  • Importation des utilisateurs en vrac;

  • Définir les paramètres par lots (tels que les tableaux d'URL, les données de demande d'API, etc.);

  • Prétraitez les champs de lots téléchargés par les utilisateurs (tels que le titre, la description, etc. lors du téléchargement des lots).

Par exemple, vous devrez peut-être obtenir un ensemble d'adresses d'URL à partir du formulaire et vérifier qu'il n'est pas vide et valide:

 $urls = [
    'https://m66.net/api/user',
    '',
    'https://m66.net/docs',
    null,
    '   '
];

$urls = array_filter($urls, function ($url) {
    return trim($url) !== '';
});

// Sortir有效链接
print_r($urls);

4. Résumé

En utilisant array_fill () pour initialiser la structure des données et nettoyer les données soumises par l'utilisateur avec array_filter () , le flux de traitement des données par lots en PHP peut être considérablement simplifié. Cette méthode est non seulement efficace et concise, mais améliore également la robustesse et la maintenabilité du code. C'est une compétence que chaque développeur PHP devrait maîtriser.

Si vous traitez souvent l'entrée de données par lots à partir de formulaires, d'API ou de bases de données, essayez d'utiliser ces deux fonctions pour optimiser votre logique de traitement.