2010-09-02 5 views
3
$array = array('a', 'b', 'c', 'd', /*... letters from 3 alphabets*/); 

$letter = 'some symbol, posted by user'; // real length = 1 

Comment obtenir le savoir, est $letter l'un des symboles, énumérés dans $array?Rechercher symbole spécifique à l'intérieur tableau

Comme, si $letter = 'G' et il n'y a pas G dans $array, bien return false alors.


Oui, j'ai essayé in_array(), mais il y a trop de symboles, est-il une autre solution (plus courte)?

+1

Trop ... nombreux ... symboles? – BoltClock

+0

Vous pourriez essayer de diviser chaque alphabet dans son propre tableau $, et ensuite faire un tas ensemble ... mais il ne devrait pas y avoir de limite sur la quantité d'éléments dans un tableau. –

+0

des lettres et des symboles comme '!,?' etc – James

Répondre

4

in_array() http://ca.php.net/in_array

if(in_array($letter,$array)) { 
    // your code 
} 

Une autre méthode serait de faire

// THIS WAY 
$array = array('a','b','c'); // and continue this way. 
$array = array_flip($array); 

// OR THIS 
$array = array('a'=>0,'b'=>0,'c'=>0); 

// This will stay the same 
if($array[$letter] != null) { 
    // your code 
} 
+1

Vous pouvez transformer le tableau de lettres en touches avec 'array_flip()' à la place. – BoltClock

+0

Merci BoltClock, je n'ai jamais eu besoin de ça, mais ça pourrait être utile. J'ai mis à jour ma réponse pour inclure votre méthode aussi. –

+0

Cela devrait être '$ array = array_flip ($ array);' car cette fonction ne modifie pas le paramètre. (Nitpicking, je sais.) – BoltClock

0
$IsInArray = in_array($letter, $array); //RETURNS TRUE OR FALSE 
0

Vérifiez la fonction in_array() ... vous permet de trouver une aiguille (seule lettre) dans un haystack (un tableau)

0

Vous pouvez utiliser une chaîne au lieu d'un tableau:

$letters = 'abcdefghi...'; 
$letter = 'a'; 

if (false !== strpos($letters, $letter)) { 
    // valid letter 
} 
Questions connexes