Foreach un tableau pour vérifier si la valeur d'une clé n'est pas vide
J'ai un tableau qui va comme ceci
$array = array('key1' => $_GET['value1'], 'key2' => $_GET['value2']);
Je veux vérifier si la valeur de la clé n'est pas vide. Dire qu'un utilisateur accède à la page web et les demandes de ce
http://mysite.com/page.php?value1=somevalue&valeur2= ce qui signifie que valeur2 est vide ou dire qu'il est manquant dans la chaîne de requête que je veux être en mesure de vérifier si il existe et n'est pas vide.
J'ai essayé ce
foreach($array as $key => $value)
{
if(empty($value))
{
//spout some error
}
}
mais même si je entrer dans ce http://mysite.com/page.php?value1=somevalue sens que valeur2 est manquant, je n'ai pas l'erreur.
Comment puis-je obtenir ce que je veux?
je ne crois pas que vous que votre code ne fonctionne pas. Êtes-vous sûr que vous n'avez pas fait une erreur quelque part d'autre? Aussi, nous vous prions d'accepter des réponses à certaines de vos questions précédentes; c'est une communauté, pas un libre-pour-tous. Cinq questions et n'accepte absolument pas OK!
Je n'ai jamais su que j'ai dû accepter quelque chose..je ne sais même pas ce qu'il faut accepter.
Lorsque vous avez une réponse qui "répond" à votre question, cliquez sur la coche indiqué à gauche de la réponse que vous acceptez. C'est une visite de courtoisie.
Cliquez sur le bouton "FAQ" lien en haut de chaque page et à lire! Bienvenue à Débordement de Pile.
Il n'y a pas de coche n'importe où sur cette page EDIT: Maintenant il est apparu..il y avait une étoile au lieu d'une coche contour
Je n'ai jamais su que j'ai dû accepter quelque chose..je ne sais même pas ce qu'il faut accepter.
Lorsque vous avez une réponse qui "répond" à votre question, cliquez sur la coche indiqué à gauche de la réponse que vous acceptez. C'est une visite de courtoisie.
Cliquez sur le bouton "FAQ" lien en haut de chaque page et à lire! Bienvenue à Débordement de Pile.
Il n'y a pas de coche n'importe où sur cette page EDIT: Maintenant il est apparu..il y avait une étoile au lieu d'une coche contour
OriginalL'auteur dikidera | 2011-03-29
Vous devez vous connecter pour publier un commentaire.
Quand je fais ceci:
Avec:
http://jfcoder.com/test/arrayempty.php?value1=somevalue
MODIFIER: Et cette - http://jfcoder.com/test/arrayempty.php?value1=somevalue&valeur2=
J'obtiens:
Je suis pensant que vous avez besoin pour donner plus de contexte à votre question à propos de l'utilisation réelle, puisqu'il y a probablement quelques autres détails de la jeter hors.
MODIFIER
Cela n'a aucun sens, mais c'était prévu dans un commentaire:
Cela ne fait pas analyser en raison de la simple quotes être mélangé avec de l'unique chaîne de caractères entre guillemets, et le fait que cela, même si cela n'a analyser, définissez le tableau morceau égale à la chaîne, pas le résultat de la fonction.
Je suppose que c'était peut-être:
Qui indiquerait qu'une chaîne de toujours être retournés au moins
''
, qui ne sera jamais vide, en raison des guillemets simples.Envisager AOP.
Vous devez l'ajouter à votre question.
Bon, alors en fait, votre question ne représente pas votre situation à tous.
mysql_real_escape_string
nécessite une connexion de base de données; êtes-vous sûr que vous avez voulu dire cela? Et avez-vousprint_r($array)
pour vérifier que son contenu est en correspondance avec ce que vous pensez qu'ils devraient être?Jared Farrish effectivement c'est le travail, parce que la façon dont j'utilise mysql_real_ecape_string je renvoie également aux apostrophes..donc c'est pourquoi ils n'ont jamais été vide et ont toujours été ensemble. Et oui, je suis de l'utilisation de MySQL c'est pourquoi j'ai utilisé le mysql_real fonction...
Je suis arrivé à penser à ce sujet, et aussi loin que je peux dire,
mysql_real_escape_string()
ne retourne pas une seule chaîne de caractères entre guillemets. @kpi, j'ai posté votre commentaire le code ci-dessus. Veuillez voir mes remarques. Quelque chose n'est pas une addition.OriginalL'auteur Jared Farrish
OH ÇA VA LE FAIRE!
cela va ajouter de la valeur de la paire de clés d'un nouveau tableau.
OriginalL'auteur Chris McClellan
Votre foreach() de la boucle est de scanner que compte tenu de ses valeurs, pas les valeurs attendues.
Vous devez définir les valeurs attendues et de faire une boucle comme ceci:
$array
avec les touches.OriginalL'auteur Skrol29
Je voudrais vérifier pour voir si le $_GET var est définie, alors la boucle à travers les valeurs.
EDIT: PUSH OBTENIR VARS SUR TABLEAU SI ILS SONT ENSEMBLE
(ce qui va pousser les valeurs dans un tableau et de l'affecter valeur1, valeur2, etc.
http://mysite.com/page.php?value1=somevalue meaning that value2 is missing
qui signifie en passant par la$_GET
vars l'habitude de l'aider à le moins du monde..Selon la question, valeur2 est vide ou ...manquant dans la chaîne de requête, cela ne fonctionnera pas si il est manquant.
oh, je vois hes manuellement la création de la matrice.
OriginalL'auteur Chris McClellan
empty() effectue également une fonction isset().
Donc, si la clé est manquante, empty() ne sera pas provoquer une erreur. Il valider comme VRAI, car il est vide
vous aurez besoin de faire une salle de isset() assurez-vous que la clé est là
Vous êtes paramètre $_GET directement dans le tableau. Effectuer des contrôles comme isset($_GET['key']) assurez-vous que la clé existe.
-1 La clé n'est pas disparu; il crée manuellement ce tableau.
Si la clé est manquante, empty() serait de retour vrai – donc d'imprimer une erreur msg.. Mais, rappelez-vous: si la clé est en réalité manquant: cela signifie que la clé/valeur est manquante dans le tableau. Donc "foreach" ne vérifiera pas la clé
lire mon commentaire au-dessus de votre propre. Je le mentionne, il a besoin pour exécuter la fonction isset() sur $_GET
OriginalL'auteur Jase