Php in_array
lautre
-
lautre -
lautre -
Bonjour,
Je viens vous demander de l'aide, je sèche complètement sur un truc qui pourtant l'air super simple: J'ai un tableau et une variable, je veux simplement vérifier que la variable est bien dans le tableau...
Le problème est que quelque soit la valeur de '$_GET['page']' il la trouver dans '$liste'. Pourquoi?
Et si je règle le troisième paramètre de 'in_array' sur 'true' ne l'y trouve jamais car il considère '$_GET['page']' comme une chaine...
Si vous avez une solution, elle sera bienvenue.
Merci
Je viens vous demander de l'aide, je sèche complètement sur un truc qui pourtant l'air super simple: J'ai un tableau et une variable, je veux simplement vérifier que la variable est bien dans le tableau...
$liste=array_keys($rep);
$liste=array_reverse($liste);
if (!(in_array($_GET['page'],$liste))){
$page=0;
echo 'page ="'.$_GET['page'].'". La valeur de $page est donc :'.$page;
}else {
$page=$_GET['page'];
echo 'page a pour valeur: '.$page;
}
Le problème est que quelque soit la valeur de '$_GET['page']' il la trouver dans '$liste'. Pourquoi?
Et si je règle le troisième paramètre de 'in_array' sur 'true' ne l'y trouve jamais car il considère '$_GET['page']' comme une chaine...
Si vous avez une solution, elle sera bienvenue.
Merci
2 réponses
-
Bonjour,
Essaie de faire var_dump($_GET['page']) et var_dump($liste), pour voir... (le résultat de var_dump se lit mieux dans le code source de la page générée que dans le navigateur lui-même)
Xavier -
Effectivement après vérification $_GET['page'] est considéré comme une chaine.
Et je ne peux malheureusement pas utiliser intvar() pour corriger le problème car si la valeur de $_GET['page'] est une chaine de lettre : 'NomDeLaPage' alors intvar($_GET['page']) me donnera 0 comme valeur...