Page 1 sur 1

problème avec "str_pad"

Posté : 12 août 2012, 12:45
par Soundboy39
Bonjour !

Voilà en j'ai besoin de compléter une chaine 1 pour quelle fasse la même taille qu'une chaine 2,
la chaine 1 devra être compléter avec une sous chaine définie, je n'ai pas trouvé mieux que la fonctionstr_pad pour faire ceci.

Voici mon code :

Code : Tout sélectionner

<?php //$page_modules = la chaine à modifié //$positions_count = la longueur de la nouvelle chaine //', 0' = la chaine de caractère utilisée pour "agrandir" $page_modules //$modules_list = la nouvelle chaine $modules_list = str_pad($page_modules, $positions_count, ', 0'); ?>

Mon problème est que "str_pad" ne change pas "$page_modules", en gros quand je fais un print de $modules_list et de $page_module le résultat et le même...

Je me disais que mon problème est peut être lié à cette note :

" Note:

Le paramètre pad_string peut être tronqué si le nombre de caractères de complétion n'est pas multiple de la taille de pad_string. "

Justement je comprend pas bien cette note, dans ce cas j'ai presque une chance sur 2 que çà ne fonctionne pas ??

Y a t'il une autre alternative à cette fonction ??

Ou alors peut être que je me gour de fonction, sachant que ce que j'aimerai faire c'est ajouter ", 0" à la chaine $page_modules pour que le nombre de ',' + 1 ateigne la valeur de l'entier $positions_count

Merci d'avance pour votre aide !!

MICKAEL

Re: problème avec "str_pad"

Posté : 12 août 2012, 13:28
par xTG
T'as comparé la taille de ta chaîne d'entrée et de $position_count ?

Re: problème avec "str_pad"

Posté : 12 août 2012, 14:35
par Soundboy39
Aye, c'est effectivement là que je me suis planté... il me semblait bien que je me trompais de méthode.

Bon pour tout remettre à plat il s'agit d'une liste contenue dans une chaine de caractère, chaque élément est délimité par ", ".

Je repart donc sur un "explode()" de la chaine pour tous classer dans un tableau, le but étant de combiner ce tableau avec un autre tableau, le problème c'est que je veux utiliser "array_combine", et je peux pas le faire car les 2 tableaux n'ont pas le même nombre d'entrée,
je veux donc compenser sur le tableau de la fameuse liste en ajoutant des entrées fictives, pour ce faire je pense avoir recours à la fonction "array_push" qui ajoute des entrées... mais comment faire pour que le nombre d'entrée à ajouter soit automatiquement déterminé en fonction du nombre d'entrée dans le deuxième tableau ??

Re: problème avec "str_pad"

Posté : 12 août 2012, 14:37
par sirakawa
Bjr,
Une chaine correctement constituée serait, si je comprends bien, du genre:
"1,1,1 ,0";
avec un nombre quelconque de 1 et un nombre quelconque de 0, les uns comme les autres séparés par des "," . La chaine a toujours une longueur impaire.

Re: problème avec "str_pad"

Posté : 12 août 2012, 21:23
par Soundboy39
oui la chaine de base et du genre "1, 0, 1, 0, 0", les délimiteurs sont ", " mais je ne suis plus sur la chaine de caractère d'origine, je
l'ai transformé en tableau auquel j'aimerais ajouter des entrées pour que les 2 tableaux que je veux combiner ai un nombre égale d'entrées.

Re: problème avec "str_pad"

Posté : 12 août 2012, 22:01
par Soundboy39
C'est bon j'ai fini ! J'ai mis mon array_push dans une boucle while qui exécute tant que le nombre d'entrées des deux tableaux n'est pas égale !!

merci pour votre aide !!


MICKAEL