2009-06-23 7 views
0

J'ai une chaîne, comment la convertir en tableau? Après avoir manipulé ce tableau, comment puis-je à nouveau en faire une chaîne?String to Array and Back

Les chaînes PHP se comportent-elles de la même manière qu'en Java?

Y at-il une dupe pour cela?

+1

Je vous encourage à consulter la riche bibliothèque de fonctions de manipulation de chaînes PHP avant que vous n'essayiez d'écrire le vôtre: PHP a un * lot * de fonctions intégrées, et j'ai souvent trouvé que ce dont j'avais besoin a déjà été écrit. –

Répondre

7

comme dans C, les chaînes sont des tableaux en php

puis

<?php 
$a = "hola"; 

for($i=0; $i < strlen($a); $i++) { 
echo $a[$i] . "\n"; 

} 

$a[2] = "-"; // will print ho-a 
?> 

quelle opération voulez-vous faire?

+0

si elles se comportent lien C chaînes qui feront l'affaire. Je veux filtrer certains caractères d'une chaîne (pas toutes les occurrences). Merci. – OrangeRind

+1

Je pense que exploser et imploser serait la solution la plus performante. – TheHippo

+0

Dans ce cas, si l'on veut éditer des caractères spécifiques d'une chaîne, je pense que le traiter comme un tableau de caractères peut être plus facile et certainement plus élégant. – jcuenod

5
explode (string $delimiter , string $string [, int $limit ]) 

... et après des changements ...

implode (string $glue , array $pieces) 

départ http://php.net/explode
et http://php.net/implode

Vous pouvez également utiliser division ou joindre qui, autant que je sache, le soutien regex

+0

quoi écrire dans $ delimiter et $ colle si je veux casser en caractères simples et revenir? – OrangeRind

+0

voir le commentaire de Gabriel Sosa – jcuenod

0

En PHP, vous pouvez split et join. Je ne sais pas comment se comporte Java.

+0

Ahh, peut-être que vous vouliez dire de quoi parle Gabriel Sosa ^^ alors ne me dérange pas ma réponse = P – anddoutoi

0

en php, vous pouvez utiliser:

fendu comme

Description de

array split (string $pattern , string $string [, int $limit ]) 

Divise une chaîne en tableau par expression régulière.

ou

imploser

<?php 

$array = array('lastname', 'email', 'phone'); 
$comma_separated = implode(",", $array); 

echo $comma_separated; // lastname,email,phone 

?> 
0

En Java, vous pouvez faire String.tocharArray() qui convertit la chaîne en un tableau de caractères. Vous pouvez faire un String.split(regex) pour diviser par une expression régulière, renvoyant un tableau de chaînes. Un tableau char ou un tableau String peut facilement être bouclé pour être converti en chaîne.

Je ne suis pas sûr de savoir ce que vous entendez par «se comportent-ils de la même manière». Essentiellement, ils fournissent la même fonctionnalité ... cependant, en Java, une chaîne est un objet qui peut être itéré en cas de besoin.

+0

je veux dire comme dans C/C++ ils sont en fait des tableaux et pas une chaîne comme dans Java. Alors, quelle est la situation en PHP. Je pense que Gabriel Sosa l'a fait. merci – OrangeRind

0

En PHP Les chaînes peuvent être accédées comme des tableaux.

.: par exemple

$my_string = 'abcdef'; 

$my_string[0] ==> 'a' 
$my_string[1] ==> 'b' 

Si vous voulez convertir une série de mots dans un tableau puis utilisez explode(' ',$my_string);

Remarque: Les chaînes en PHP ne sont pas les mêmes que Java. En PHP, ils peuvent également représenter le contenu de n'importe quel fichier.

Vous pouvez apprendre presque tout ce qu'il ya à savoir en vérifiant la documentation :)

+0

explose par '' a donné une erreur. la documentation devient trop collante pour que je puisse la comprendre. Le toucher expliquant l'humain facilite l'apprentissage. ;) – OrangeRind

0

à la perl

<?php 
    $string = 'aslkdjlcnasklhdalkfhlasierjnalskdj'; 
    $array = array_slice(preg_split('//sx', $string), 1, -1); 
?> 
1
$wordArray = str_split('string to array');