2010-07-26 6 views
1

J'essaie de convertir une variable en tableau et de diviser chaque caractère en PHP.PHP: Convertir une variable en tableau

dire J'ai $name = 'John Smith'; variables Comment puis-je convertir à:

array('J','o','h','n',' ','S','m','i','t','h'); 

Notez l'espace entre John et Smith ainsi.

Merci.

+4

Etes-vous sûr tu en as besoin? Si vous avez seulement besoin d'accéder à des caractères individuels, vous pouvez simplement utiliser [] sur la chaîne elle-même. Par exemple. '$ name [1]' vous obtiendra 'o'. –

+0

@ Matti Virkkunen, cette méthode n'est pas bonne pour les lettres non-anglais (russe, par exemple). – Kirzilla

+1

@Kirzilla: Cela aurait été une bonne chose à mentionner dans votre message, car la plupart des fonctions intégrées ne prennent pas en charge les caractères multi-octets non plus. L'extension de chaîne multi-octets pourrait vous aider, mais j'évite complètement PHP en raison de sa gestion des chaînes abyssales. –

Répondre

13

Pour cela, il existe str_split.

+0

+1 J'ai suggéré la fonction exploser mais bien sûr, cela nécessite un délimiteur. –

-1

Tchad,

essayez d'utiliser le php 'exploser' fonction http://www.w3schools.com/php/func_string_explode.asp

jim

+0

Tchad - La suggestion d'Artefacto est le meilleur pari !! –

+0

Je n'utiliserais pas w3schools, ni j'utiliserais 'explode()'. –

+0

vérité, en vérité, je ne le ferais pas :). merci d'être assez courtois pour laisser une raison au -1. tout le meilleur .. –

1

$array = preg_split('//', $string);

Cependant, vous pouvez traiter des chaînes comme des tableaux de caractères en php.

$string = 'foobar'; 
for($i=0; $i<strlen($string); ++$i) echo $string[$i]; 
5

Vous pouvez déjà accéder à votre chaîne en utilisant l'opérateur [].

Par exemple:

$var = "bonjour"; 
echo $var[0]; 
> 'b' 

Ensuite, vous avez juste à utiliser explode.

3
$str = "John Smith"; 

$arr = str_split($str); 

Note: peut-être vous n'avez pas à ce faire, vous pouvez simplement utiliser une chaîne comme il est un tableau pour obtenir tous les caractères ($str[1] pour obtenir un « o »)