96 votes

Vérifier si tous les éléments du tableau sont vides PHP

J'ajoute un tableau d'éléments à partir d'un formulaire et si tous sont vides, je veux effectuer une certaine validation et ajouter à une chaîne d'erreur. Donc j'ai :

$array = array(
    'RequestID'       => $_POST["RequestID"],
    'ClientName'      => $_POST["ClientName"],
    'Username'        => $_POST["Username"],
    'RequestAssignee' => $_POST["RequestAssignee"],
    'Status'          => $_POST["Status"],
    'Priority'        => $_POST["Priority"]
);

Et puis si tous les éléments du tableau sont vides, exécutez :

$error_str .= '<li>Please enter a value into at least one of the fields regarding the request you are searching for.</li>';

208voto

xzyfer Points 6465

Vous pouvez simplement utiliser le array_filter intégré

Si aucun rappel n'est fourni, toutes les entrées d'entrée égales à FALSE (voir conversion en booléen) seront supprimées.

Cela peut donc se faire en une seule ligne.

if(!array_filter($array)) {
    echo '<li>Please enter a value into at least one of the fields regarding the request you are searching for.</li>';
}

8voto

mulquin Points 975

Une question plus ancienne, mais j'ai pensé que je ferais partie de ma solution car elle n'a pas été répertoriée ci-dessus.

function isArrayEmpty(array $array): bool {
    foreach($array as $key => $val) {
        if ($val !== '' || $val !== null) // remove null check if you only want to check for empty strings
            return false;
    }
    return true;
}

3voto

tu n'en as pas vraiment besoin.
Vous allez valider ces champs séparément et en finissant ce processus, vous pouvez dire si le tableau était vide (ou contient des valeurs invalides, ce qui est la même chose)

3voto

Mehran Nasr Points 31

simplifier l'utilisation de cette façon :

$array = []; //target array
$is_empty = true; //flag

foreach ($array as $key => $value) {
    if ($value != '')
        $is_empty = false;
}
if ($is_empty)
    echo 'array is empty!';
else
    echo 'array is not empty!';

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X