Php in_array

Fermé
lautre - 25 sept. 2010 à 17:43
 lautre - 25 sept. 2010 à 18:55
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...


$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
A voir également:

2 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
25 sept. 2010 à 18:11
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
0
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...
0