[RESOLU] problème avec "str_pad"

Eléphanteau du PHP | 11 Messages

12 août 2012, 12:45

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

ViPHP
xTG
ViPHP | 7331 Messages

12 août 2012, 13:28

T'as comparé la taille de ta chaîne d'entrée et de $position_count ?

Eléphanteau du PHP | 11 Messages

12 août 2012, 14:35

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 ??

Mammouth du PHP | 2278 Messages

12 août 2012, 14:37

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.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 11 Messages

12 août 2012, 21:23

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.

Eléphanteau du PHP | 11 Messages

12 août 2012, 22:01

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