2015-03-18 1 views
1

J'ai plus de 3500 petites chaînes appelées "zones de tri d'acheminement". Ce sont les trois premiers chiffres des codes postaux canadiens. Ils suivent un ordre alphanumérique logique.Chaînes alphanumériques et opérateurs php (code postal)

Exemple: H2W, H2X, H2Y, H2Z, H3A, H3B etc.. 

J'ai besoin de définir une « pricelevel » valeur pour les FSAs dans une instruction if/else, et heureusement, ils vont un grand groupe à la fois. Ce que je suis en train de faire quelque chose comme ceci:

$fsa = "H2V" ; 

if ($fsa >= "H2A" and <= "H2R") { 
$pricelevel = "1"; 
} elseif ($fsa >= "H2S" and <= "H3B") { 
$pricelevel = "2"; 
} elseif ($fsa >= "H3C" and <= "H4M") { 
$pricelevel = "3"; 
} 

Dans ce cas, $ pricelevel serait « 2 ».

Si je ne me trompe pas, il est impossible d'utiliser ces opérateurs sur des chaînes alphanumériques. Il doit y avoir un moyen de le faire mais je ne peux pas comprendre. Merci d'avance pour votre aide précieuse.

Répondre

2

Oui, PHP va traduire ces chaînes en nombres, si de chaque côté de la comparaison il y a une chaîne.

Cependant vous avez un bug ici - après and vous devez mettre à nouveau $fsa:

if ($fsa >= "H2A" and $fsa <= "H2R") { 

Vous pouvez lire ici: http://php.net/manual/en/language.operators.comparison.php

+0

j'ai écrit mon exemple trop vite. Ça semble fonctionner maintenant. Merci ! Viva PHP –