2009-04-10 12 views
2

Je veux accepter une chaîne à partir d'un formulaire, puis le diviser en un tableau de caractères en utilisant PHP, par exemple:briser un mot en lettres php

$a = 'professor'; 
$b[0] == 'p'; 
$b[1] == 'r'; 
$b[2] == 'o'; 
. 
. 
. 
. 
. 
$b[8] = 'r'; 
+0

Vous savez que les chaînes en php sont définies par "ou '?;) – Strae

+1

Hey, j'ai vu votre profil et je peux voir que vous n'avez marqué aucune réponse comme correcte pour l'un des Les questions que vous avez posées Lorsque vous trouvez votre solution, vous devez la marquer comme la bonne réponse à votre question, ce qui aidera tous ceux qui viennent ici avec le même problème à voir ce que la solution est réellement – Seb

Répondre

25

Vous n'êtes pas obligé de le faire. En PHP, vous pouvez accéder à vos personnages directement à partir de la chaîne comme si elle où un tableau:

$var = "My String"; 
echo $var[1]; // Will print "y". 
+1

Je ne le savais pas. bon conseil. – gargantuan

+0

FYI, $ var {1} fonctionnera, mais il est déprécié depuis PHP6 en faveur de $ var [1]. – whichdan

9
str_split($word); 

C'est plus rapide que l'accès aux mots de $ comme un tableau. (Et mieux encore, vous pouvez parcourir it it avec foreach().) Documentation.

+0

Pourquoi est-ce plus rapide? Il retourne juste un tableau. –

+1

Ce n'est pas plus rapide; en fait, c'est plus lent - il faut créer un tableau supplémentaire et voir où diviser la chaîne originale en fonction du second paramètre. – Seb

+0

Vous avez raison: un benchmark confirme que c'est 50% plus lent que votre méthode. – moo

1

Soyez prudent car les exemples ci-dessus ne fonctionnent que si vous traitez des chaînes ASCII (octet unique).

3

Si vous voulez vraiment les caractères individuels dans une variable de type tableau, par opposition à juste besoin d'accéder au caractère par index, utilisez:

$b = str_split($a) 

Sinon, il suffit d'utiliser $ a [0], $ a [1], etc ...

+0

merci pour la réponse ............ cela a fonctionné – PROFESSOR

Questions connexes