Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : couper une chaine [ Divers / Débutant(e) ] (zut69)

lundi 4 août 2008 à 12:26:30 | couper une chaine

zut69

Bonjour,

J'ai un grand nombre sous une forme précise que je voudrais découper.

Voici un nombre: 123456789

et je voudrais faire une boucle qui mette dans une variable des nombres à 3 chiffres.

C'est à dire que dans ce cas, j'aimerais récupérer 123 puis 456 puis 789

Jusque là j'arrive à me débrouiller avec substr en coupant tous les 3, mais le souci
c est quand le nombre n'est pas un multiple de 3. Il faudrait que le nombre plus petit (à 1 ou 2 chiffres)
soit le premier à sortir.
Par exemple, si je soumets ce nombre: 12345678901

Je voudrais obtenir: 12 puis 345 puis 678 puis 901

Merci pour votre aide,

FF

lundi 4 août 2008 à 13:21:10 | Re : couper une chaine

coucou747

salut
on peut avoir ton code ?

debuger c'est plus rapide que recreer de 0.

lundi 4 août 2008 à 15:13:10 | Re : couper une chaine

Evangun

Hello,

moi je sens bien un petit substr( ) pour enlever les 1 ou 2 premières lettres si ce n'est pas divisible par trois (if strlen($chaine)%3 !== 0) et ensuite un str_split( ).

à+

lundi 4 août 2008 à 15:20:20 | Re : couper une chaine

coucou747

Réponse acceptée !
$foo = array();

$len = strlen($chaine);

$i = ($len % 3 == 0 )?3:($len%3);
$pos = 0;
while ($pos < $len){
$foo[] = substr($chaine, $pos, $i); $i = 3; $pos += $i;
}

en separant le premier cas des autres, on peut faire plus rapide.

lundi 4 août 2008 à 15:20:20 | Re : couper une chaine

coucou747

$foo = array();

$len = strlen($chaine);

$i = ($len % 3 == 0 )?3:($len%3);
$pos = 0;
while ($pos < $len){
$foo[] = substr($chaine, $pos, $i); $i = 3; $pos += $i;
}

en separant le premier cas des autres, on peut faire plus rapide.

lundi 4 août 2008 à 16:01:54 | Re : couper une chaine

Evangun

Ah et au fait, là on parle de chaîne, mais si c'est juste pour formater un nombre, tu as la fonction number_format($nombre, 0, ',', ' ');
à+

lundi 4 août 2008 à 18:39:50 | Re : couper une chaine

zut69

Merci beaucoup pour vos réponses,
la ligne vraiment utile, c est: $i = ($len % 3 == 0 )?3:($len%3);
je me suis débrouiller comme ça:

        $len = strlen($decrypte);
            for($i=0;$i<$len;$i+=3)
            {
            if($i==0) $longueur = ($len % 3 == 0)?3:($len%3);
            $contenu.=chr(substr($decrypte,$i,$longueur);
            $longueur=3;
            $x++;
            }

En fait, c'est un code de décryptage, les 3 chiffres représente un nombre ascii
que je reconverti en lettre avec chr.



Cette discussion est classé dans : nombre, chiffres, chaine, couper


Répondre à ce message

Sujets en rapport avec ce message

couper une chaine [ par brezoneg ] Dans des champs j'insère des valeurs du type :champ amachin.(PLR) truc.(SH) bins.(JCL) pendant un affichage je voudrais couper cet enregistrement en r fonction ki koup !! [ par saad123 ] salut!!!voila je cherche a couper une chaine de caractere trop longue, ya til une fonction pour couper une chaine au caractère n ???merci Couper uen chaine de caracteres [ par SatanCorporation ] Salut a tous!!!!comment je peux faire pour couper uen chaine de caracteres apres que n soit egal a n en coupant celle ci au mot suvant :$mavariable="1 Nombre de caractere dans une chaine ? [ par Joez ] Yop yopje veux compter le nombre de cartactere ( lettre, espace, symbole.. enfin tout) d'une chaine de caractereComment faire ?Merci [debutant]couper une chaine [ par jimmy69 ] Bonjour a tous,Voila je me suis fait un p'tit systeme de newd tout simple ! apres avoir vu cette semaine grace a un code comment on fait pour couper u Couper une chaine tous les X mots [ par 3xodius55 ] Bonjour (ou re-bonjour pour quelques uns^^),Est-ce que vous sauriez par hasard comment je pourrai couper une chaine tous les X mots.La chaîne en quest Nombre Octec Chaine Caractere [ par josh666 ] Bonjour a tous !Est-il possible de connaitre la taille (en octec) du contenu d'une variable, sachant que le contenu de la variable est une chaine de c obtenir la position du premier nombre dans une chaine de caracteres [ par jsuisperdu ] bonjour,je cherche à caluler automatiquement la poisiton de la premiere valeur numérique dans un texte.exemple : "le chien de la voisine a mange 52 ch Nombre caractère dans chaine [ par yoarf ] Bonjour,Dans la chaine de caractères "$rep" je voudrais retourner le nombre de "/" (en fait c'est un chemin d'accès, je veux retourner le niveau de pr compter le nombre de sous chaine dans une chaine [ par loupile ] Bonjour, alors voila j'ai une chaien $tag='http://www.monsite.com/test.php?url=http://www.monsite2.com/'  comment puis je connaitre le nombre de sous


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.