Désolée si la question est niveau neuneu, mais je trouve pas la réponse. Je
cherche simplement à savoir si une valeur se trouve parmi une liste.
Je pourrais bien sûr écrire :
if (($pays=='France') OR ($pays=='Allemagne') OR ($pays=='Italie) OR [...]
...
Mais y a-t-il moyen d'abréger un peu (j'ai toute une liste de pays) ? J'ai
essayé :
if ($pays==('France' OR 'Allemagne' OR 'Italie'))
mais comme je m'y attendais, ça ne marche pas.
Je n'ai pas trouvé de réponse dans le manuel PHP... Y en a-t-il une ?
--
Pascale
C'est à double tranchant, car il y a en a tellement qu'on s'y perd. Y compris des trucs inutilement compliqués comme par exemple array_walk(), qui permet de passer 5 bonnes minutes à se gratter le neurone devant le man en ne comprenant strictement rien à ce qu'on lit alors qu'un bête foreach() fait aussi bien le boulot.
C'est même plus pernicieux que ça car qd je trouve une fonction qui ressemble à une autre, je me demande si je ne fais pas une grosse erreur (de compréhension ou d'optimisation) en utilisant celle que je connais.
C'est à double tranchant, car il y a en a tellement qu'on s'y perd. Y
compris des trucs inutilement compliqués comme par exemple array_walk(),
qui permet de passer 5 bonnes minutes à se gratter le neurone devant le
man en ne comprenant strictement rien à ce qu'on lit alors qu'un bête
foreach() fait aussi bien le boulot.
C'est même plus pernicieux que ça car qd je trouve une fonction qui
ressemble à une autre, je me demande si je ne fais pas une grosse erreur
(de compréhension ou d'optimisation) en utilisant celle que je connais.
C'est à double tranchant, car il y a en a tellement qu'on s'y perd. Y compris des trucs inutilement compliqués comme par exemple array_walk(), qui permet de passer 5 bonnes minutes à se gratter le neurone devant le man en ne comprenant strictement rien à ce qu'on lit alors qu'un bête foreach() fait aussi bien le boulot.
C'est même plus pernicieux que ça car qd je trouve une fonction qui ressemble à une autre, je me demande si je ne fais pas une grosse erreur (de compréhension ou d'optimisation) en utilisant celle que je connais.
Denis Beauregard
Le 25 Sep 2007 07:40:04 GMT, Pascale <chaton.tigre+ écrivait dans fr.comp.lang.php:
Denis Beauregard écrivait news::
En plus du in_array proposé, il y a aussi les strstr et stristr http://ca.php.net/manual/fr/function.strstr.php
if (!stristr(';France;Allemagne;Italie;',$i))
Un avantage, c'est de trouver un mot incomplet. Par exemple, cela trouverait allemagn. C'est aussi un inconvénient pour la même raison. Pour ce qui est de la vitesse, je pense que la différence est trop petite pour qu'on en tienne compte. Par contre, si la liste est très longue, le in_array serait préférable.
À vous de voir.
J'avais pensé à un truc un peu dans ce genre : concaténer mes noms de pays pour en faire un seul champ et rechercher ensuite si je retrouver ma chaîne de caractères à l'intérieur. Mais j'ai eu peur de problèmes tels que ceux que tu décris, même si ma liste de pays actuelle ne présente pas d'ambiguïté.
Mon utilisation prévue est sans doute différente de la tienne. Ce que j'avais en tête, c'est pour une liste de liens dans une base de données, chaque lien appartenant à plusieurs catégories.
Avec mon truc, je pourrais par exemple avoir sur une ligne
;arseneaux;arsenault;arsenaud;arseno;
et trouver le lien avec plusieurs mots clés différents. Et ici, c'est sans importance que la chaine soit trouvée en partie.
Pour une application de filtrage à partir d'une liste d'endroits, cela est à double tranchant. D'un côté, à partir de Saint-Denis, je trouverais Saint-Denis-sur-Richelieu, Saint-Denis de la Réunion, Saint-Denis-le-Vêtu, Saint-Denis-de-L'Houmée com Beurlay (Saint-Denis), etc. Donc, pour un moteur de recherche, c'est acceptable et même préférable. D'un autre côté, à partir de Paul*Champagne, je trouverais aussi Saint-Paul, Champagne mais aussi ;Saint-Paul;Saint-Martin;Champagne sur Mer;
C'est une question d'utilisation que l'on veut en faire.
Une application réelle contiendrait par exemple ;F01;F26;F38; Pour France, départements 01, 26 et 38.
Denis
Le 25 Sep 2007 07:40:04 GMT, Pascale <chaton.tigre+spam@alussinan.org>
écrivait dans fr.comp.lang.php:
En plus du in_array proposé, il y a aussi les strstr et stristr
http://ca.php.net/manual/fr/function.strstr.php
if (!stristr(';France;Allemagne;Italie;',$i))
Un avantage, c'est de trouver un mot incomplet. Par exemple, cela
trouverait allemagn. C'est aussi un inconvénient pour la même raison.
Pour ce qui est de la vitesse, je pense que la différence est trop
petite pour qu'on en tienne compte. Par contre, si la liste est très
longue, le in_array serait préférable.
À vous de voir.
J'avais pensé à un truc un peu dans ce genre : concaténer mes noms de pays
pour en faire un seul champ et rechercher ensuite si je retrouver ma chaîne
de caractères à l'intérieur. Mais j'ai eu peur de problèmes tels que ceux
que tu décris, même si ma liste de pays actuelle ne présente pas
d'ambiguïté.
Mon utilisation prévue est sans doute différente de la tienne.
Ce que j'avais en tête, c'est pour une liste de liens dans une
base de données, chaque lien appartenant à plusieurs catégories.
Avec mon truc, je pourrais par exemple avoir sur une ligne
;arseneaux;arsenault;arsenaud;arseno;
et trouver le lien avec plusieurs mots clés différents. Et ici, c'est
sans importance que la chaine soit trouvée en partie.
Pour une application de filtrage à partir d'une liste d'endroits, cela
est à double tranchant. D'un côté, à partir de Saint-Denis, je
trouverais Saint-Denis-sur-Richelieu, Saint-Denis de la Réunion,
Saint-Denis-le-Vêtu, Saint-Denis-de-L'Houmée com Beurlay
(Saint-Denis), etc. Donc, pour un moteur de recherche, c'est
acceptable et même préférable. D'un autre côté, à partir de
Paul*Champagne, je trouverais aussi Saint-Paul, Champagne mais
aussi ;Saint-Paul;Saint-Martin;Champagne sur Mer;
C'est une question d'utilisation que l'on veut en faire.
Une application réelle contiendrait par exemple
;F01;F26;F38; Pour France, départements 01, 26 et 38.
Le 25 Sep 2007 07:40:04 GMT, Pascale <chaton.tigre+ écrivait dans fr.comp.lang.php:
Denis Beauregard écrivait news::
En plus du in_array proposé, il y a aussi les strstr et stristr http://ca.php.net/manual/fr/function.strstr.php
if (!stristr(';France;Allemagne;Italie;',$i))
Un avantage, c'est de trouver un mot incomplet. Par exemple, cela trouverait allemagn. C'est aussi un inconvénient pour la même raison. Pour ce qui est de la vitesse, je pense que la différence est trop petite pour qu'on en tienne compte. Par contre, si la liste est très longue, le in_array serait préférable.
À vous de voir.
J'avais pensé à un truc un peu dans ce genre : concaténer mes noms de pays pour en faire un seul champ et rechercher ensuite si je retrouver ma chaîne de caractères à l'intérieur. Mais j'ai eu peur de problèmes tels que ceux que tu décris, même si ma liste de pays actuelle ne présente pas d'ambiguïté.
Mon utilisation prévue est sans doute différente de la tienne. Ce que j'avais en tête, c'est pour une liste de liens dans une base de données, chaque lien appartenant à plusieurs catégories.
Avec mon truc, je pourrais par exemple avoir sur une ligne
;arseneaux;arsenault;arsenaud;arseno;
et trouver le lien avec plusieurs mots clés différents. Et ici, c'est sans importance que la chaine soit trouvée en partie.
Pour une application de filtrage à partir d'une liste d'endroits, cela est à double tranchant. D'un côté, à partir de Saint-Denis, je trouverais Saint-Denis-sur-Richelieu, Saint-Denis de la Réunion, Saint-Denis-le-Vêtu, Saint-Denis-de-L'Houmée com Beurlay (Saint-Denis), etc. Donc, pour un moteur de recherche, c'est acceptable et même préférable. D'un autre côté, à partir de Paul*Champagne, je trouverais aussi Saint-Paul, Champagne mais aussi ;Saint-Paul;Saint-Martin;Champagne sur Mer;
C'est une question d'utilisation que l'on veut en faire.
Une application réelle contiendrait par exemple ;F01;F26;F38; Pour France, départements 01, 26 et 38.
Denis
Bruno Desthuilliers
(snip)
Gloups... un langage typé, ça veut dire quoi ?
Les experts ne sont pas encore parvenus à une définition définitive et univoque à ce jour. Mais tout le monde ou presque s'accorde à considérer qu'un langage qui considère que '1' == 1 n'a pas vraiment un typage fort !-)
(snip)
Gloups... un langage typé, ça veut dire quoi ?
Les experts ne sont pas encore parvenus à une définition définitive et
univoque à ce jour. Mais tout le monde ou presque s'accorde à considérer
qu'un langage qui considère que '1' == 1 n'a pas vraiment un typage fort
!-)
Les experts ne sont pas encore parvenus à une définition définitive et univoque à ce jour. Mais tout le monde ou presque s'accorde à considérer qu'un langage qui considère que '1' == 1 n'a pas vraiment un typage fort !-)
Pascale
Olivier Masson écrivait news:46fa3f4a$0$32751$:
C'est même plus pernicieux que ça car qd je trouve une fonction qui ressemble à une autre, je me demande si je ne fais pas une grosse erreur (de compréhension ou d'optimisation) en utilisant celle que je connais.
C'est même plus pernicieux que ça car qd je trouve une fonction qui
ressemble à une autre, je me demande si je ne fais pas une grosse erreur
(de compréhension ou d'optimisation) en utilisant celle que je connais.
C'est même plus pernicieux que ça car qd je trouve une fonction qui ressemble à une autre, je me demande si je ne fais pas une grosse erreur (de compréhension ou d'optimisation) en utilisant celle que je connais.
Aaaaaah... je me sens moins seule ! (-:
-- Pascale
Pascale
Denis Beauregard écrivait news::
[couic]
Je couique mais je te remercie pour l'explication très claire.
Je couique mais je te remercie pour l'explication très claire.
-- Pascale
Pascale
Bruno Desthuilliers écrivait news:46fc03b7$0$21518$:
Les experts ne sont pas encore parvenus à une définition définitive et univoque à ce jour. Mais tout le monde ou presque s'accorde à considérer qu'un langage qui considère que '1' == 1 n'a pas vraiment un typage fort !-)
Bruno Desthuilliers <bdesth.quelquechose@free.quelquepart.fr> écrivait
news:46fc03b7$0$21518$426a74cc@news.free.fr:
Les experts ne sont pas encore parvenus à une définition définitive et
univoque à ce jour. Mais tout le monde ou presque s'accorde à considérer
qu'un langage qui considère que '1' == 1 n'a pas vraiment un typage fort
!-)
Bruno Desthuilliers écrivait news:46fc03b7$0$21518$:
Les experts ne sont pas encore parvenus à une définition définitive et univoque à ce jour. Mais tout le monde ou presque s'accorde à considérer qu'un langage qui considère que '1' == 1 n'a pas vraiment un typage fort !-)