Tableau de chaines de caracteres en php

Fermé
husobom - 2 mai 2008 à 20:14
 husobom - 3 mai 2008 à 14:17
Bonjour,
J'ai un petit soucis concernant les tableaux de chaines de caractères. En fait, dans une phrase, à chaque fois que je détecte un point, une virgule, un point virgule ou les deux points, je veux récupérer la chaine de caractères et la mettre dans un tableau.
Exemple : Etre ou ne pas être, telle est la question. Moi je suis.
Il faudrait alors que j'obtienne ici 3 éléments dans mon tableau "Etre ou ne pas être", "telle est la question" et "Moi je suis". Ici je pense que je fais correctement l'analyse, mais lorsque que j'affiche j'obtiens 3 fois Array, est-ce un problème de déclaration ou autre chose, en fait je ne vois pas trop, merci de m'aider...
Voici mon code.

$long = strlen($tab[$i]);
$debut = 0;
$parti = array();
$nb = 0;
for($f=0;$f<$long;$f++)
{
if ($tab[$i][$f]==',' || $tab[$i][$f]==';' || $tab[$i][$f]==':' || $tab[$i][$f]=='.') {
for($a=$debut;$a<$f;$a++) {
$parti[$nb][$a] = $tab[$i][$a];
}
echo $parti[$nb];
$debut = $f+1;
$nb++;
}
}
A voir également:

1 réponse

bien compliqué tout ça.

il vaudrait mieux utiliser les fonctions php explode ou preg_split:
https://www.php.net/manual/fr/function.explode.php
https://www.php.net/manual/fr/function.preg-split.php
0
Effectivement, avec explode j'ai réussi à faire ce que je voulais, merci pour le conseil ;)
Voici le code si ça vous intéresse :
$long = strlen($tab[$i]);
$debut = 0;
$nb = 0;
$premiere = true;
for($f=0;$f<$long;$f++)
{
if ($tab[$i][$f]==',' || $tab[$i][$f]==';' || $tab[$i][$f]==':' || $tab[$i][$f]=='.') {
if ($premiere == true)
{$separe = explode($tab[$i][$f], $tab[$i]);
$parti[$nb]=$separe[0];
$nb++;
$premiere = false;}
else
{$pieces = explode($tab[$i][$f], $pieces[1]);
$parti[$nb]=$separe[0];
$nb++;}
}
}

Ici la variable $premiere me sert pour commencer la séparation à partir du début du texte, ou du reste.
0