Tableau de chaines de caracteres en php
husobom
-
husobom -
husobom -
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++;
}
}
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:
- Tableau de chaines de caracteres en php
- Tableau word - Guide
- Tableau ascii - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Trier un tableau excel - Guide
- Caractères spéciaux - Guide
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
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
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.