Test conditionnel avec une liste de valeurs

Petit nouveau ! | 2 Messages

03 mai 2010, 10:51

Bonjour,

Je me suis (ré)initié au PHP grâce au tuto en ligne du Site du Zéro (après huit ans de pause), et je suis en train de convertir tous mes sites statiques vers le PHP.

Dans un script, je dois effectuer le test suivant :

SI la variable $category est égale à une de ces valeurs : 0, 3, 5, 8, 10, 15
ALORS
...
SI $category est égale à une de ces valeurs : 1, 2, 47, 95
ALORS
...

Je voudrais simplement savoir une syntaxe orthodoxe pour écrire ça avec OR.

Eléphant du PHP | 428 Messages

03 mai 2010, 10:58

Salut,

Si tu connais tes valeurs (0, 3, 5, 8, 10, 15 et 1, 2, 47, 95), je te conseille de travailler avec la fonction in_array :
http://php.net/manual/en/function.in-array.php

Ainsi tu devrais pouvoir t'en sortir :
// On défini le tableau avec les valeurs
$tableau1 = array(0, 3, 5, 8, 10, 15);
$tableau2 = array(1, 2, 47, 95);

// On teste pour savoir si $catégory est égal à une de ces valeurs et si c'est le cas on affiche OK
if (in_array($category, $tableau1)) {
    echo "OK 1";
// TON CODE ICI

// Sinon, si $category = autre valeurs
} elseif (in_array($category, $tableau2)) {
    echo "OK 2";
// TON CODE ICI
....
}

Si tu ne connais pas d'avance les valeurs des tableau1 et tableau2, rien ne t'empêche de créer des tableau1 et tableau2 dont le contenu se charge dynamiquement (par exemple, par le biais d'une table de la base de donnée) ...

a+ ;)

Petit nouveau ! | 2 Messages

03 mai 2010, 11:13

Merci beaucoup, c'est exactement ce qu'il me fallait. En fait, concrètement, il s'agit d'insérer un lien dans une page, selon si elle est en allemand ou en français. Donc concrètement, ça donne :
$de = array(1, 3);
$fr = array(2, 4, 5);

if (in_array($category, $de))    
{
  echo '<li><a href="../index.php">Zurück zur Hauptseite</a></li>' . "\n";
  echo '<li>&nbsp;</li>' . "\n";
}
elseif (in_array($category, $fr))
{
  echo '<li><a href="../index.php">Retour à la page d\'accueil</a></li>' . "\n";
  echo '<li>&nbsp;</li>' . "\n";
}

Eléphant du PHP | 428 Messages

03 mai 2010, 11:17

Si ton problème est résolu, peux tu tagger ton message comme tel ?
Il suffit d'appuyer sur le bouton avec un "v" dedans pour mettre ton message en couleur verte qui signifie résolu.

Danke Sheun,
visualight