Page 1 sur 2
premiers pas
Posté : 06 sept. 2006, 18:51
par kabukishido
Bonjour le monde
Je débute avec PHP et c'est vraiment le top !!!
Par contre, après avoir fait joujou avec les variables je comprends pas pourquoi :
<?
$tab = array();
$i=0;
while ($i<10){
$tab[$i] = $i;
$i++;
}
echo $tab."<br>";
?>
m'affiche "array" et non pas 1,2,3...10.
Merci
kabukishido
Posté : 06 sept. 2006, 19:13
par charabia
Pour afficher le tableau il faut que tu utilises $tab[$i] et non $tab tout court.
De plus si tu veux qu'il affiche de 0 à 9, il faut que tu mettes ton affichage dans la boucle.
Si tu le mets à l'extérieur tu n'auras aucun résultat.
<?php
$tab = array();
$i=0;
while ($i<10){
$tab[$i] = $i;
echo $tab[$i].", ";
$i++;
}
?>
Utilises de préférence <?php au lieu de <?

Posté : 06 sept. 2006, 23:36
par HanX
petite astuce pour lire un tableau (uniquement pour tester, ne fais jamais ça sur un site 8))
print_r($ton_tableau);
Posté : 07 sept. 2006, 08:56
par Invité
Ok, je pensais qu'on pouvait après avoir incrémenter son tableau sortir la totale par un echo.
Donc si je pige bien :
- Un echo peut me permettre de sortir un élément, mais si je veux sortir la totale c'est par une boucle if ou while, c'est bien ça ?
En tout cas merci pour la réponse et l'astuce (connaissais pas

)
kabukishido
Posté : 07 sept. 2006, 08:58
par Invité
et aussi j'oubliais (en plus du post ci-dessus) :
Pourquoi <?php plutôt que <? ???
kabukishido
Posté : 07 sept. 2006, 09:07
par charabia
Non le echo permet d'afficher une donnée tout simplement.
Là dans ton exemple, si tu veux afficher de 0 à 9, il faut que ton affichage se situe dans la boucle avant l'incrémentation pour que la boucle puisse repartir et afficher l'élément suivant
Concernant le <? ou <?php : le <?php est plus souvent utilisé pour éviter de futurs soucis donc plus "correct" que <? même si ce dernier est encore pas mal utilisé.
Par exemple si tu utilises WAMP, <? te sortira un erreur (sauf si tu changes la config).
Posté : 07 sept. 2006, 09:42
par Invité
Ok et dans le cas où j'ai mal déclaré un tableau alphabet genre je suis un boulet ou un psychopathe :
$alphab=array("a","b","z","i","g"...);//dans le désordre mais les 26.
Comment appliquer une commande à tout un tableau exemple simple avec un sort($alphab) si l'echo ne me renvoie qu'une valeur..? Ca se passe dans la boucle ? J'avoue que j'ai du mal à me rendre compte
kabushido
Ps : merci pour le partage de ton savoir

Posté : 07 sept. 2006, 09:55
par charabia
Posté : 07 sept. 2006, 11:31
par Invité
Merci pour le lien, j'ai réussi à faire grossomodo ce que je voulais à une exception :
Quand je fais un tri sur un nom de fichier il me zappe l'enregistrement qui à l'indice 0 et me le colle à la fin. J'me suis dit que j'allais commencer mon tableau à 1 mais c'est pas possible puisque celui-ci s'incrémente dynamiquement, je ne le déclare pas avec un 1=>. Que faire ?
kabukishido
Posté : 07 sept. 2006, 11:47
par charabia
Un tit morceau de code ?

J'ai un peu de mal à saisir les phrases aujourd'hui lol
Posté : 07 sept. 2006, 12:11
par Invité
Ok, désolé d'abuser de ta patience (encore merci)
Voici le truc, je suis persévérant et veux y arriver seul donc j'explique juste les résultats obtenu et escompté :
Le <?php print_r($mon_tableau); ?> me donne ceci :
Array ( [0] => AEA.txt [1] => ADA.txt [2] => ACA.txt [3] => ABA.txt [4] => AAA.txt [4] ) //c'est exactement ce que je veux
mais à l'affichage, avec un rsort, j'obtiens :
ADA.txt
ACA.txt
ABA.txt
AAA.txt
AEA.txt//pourquoi cet élément (fameux indice 0) n'est-il pas en première place :'(
kabukishido
Posté : 07 sept. 2006, 13:59
par charabia
Tu as dû louper quelque chose. A quoi correspond le [4] à la fin de ton affichage ? Tu devrais avoir [5] => ....txt
Posté : 07 sept. 2006, 14:00
par Number
Je me permet :
Parceque rsort sert a trier dans le sens inverse :
Code : Tout sélectionner
rsort() effectue un tri en ordre décroissant (du plus grand au plus petit) du tableau array
Posté : 07 sept. 2006, 14:19
par Invité
Un erreur dans la saisie de mon post ca fait en fait [0],[1],[2],[3],[4].
Dès que j'applique une commande à mon tableau, la p'tite astuce renvoie bien le résultat voulu mais mon echo dans la boucle ne m'affichage pas la même chose. L'élément ayant l'indice 0 est systématiquement en dernière position alors que le reste est bien trié

Posté : 07 sept. 2006, 14:34
par charabia
J'ai fait le code chez moi l'affichage est correct...
Code : Tout sélectionner
AEA.txt
ADA.txt
ACA.txt
ABA.txt
AAA.txt
Array ( [0] => AEA.txt [1] => ADA.txt [2] => ACA.txt [3] => ABA.txt [4] => AAA.txt )