php pour trouver la posistion d'un élément d'un tableau

php pour trouver la posistion d'un élément d'un tableau - Programmation

Marsh Posté le 31-10-2001 à 08:58:50    

bonjour, j'ai un tableau "array"
et je voudrais interroger ce tablo pour connaitre la position d'un élément connu.

Reply

Marsh Posté le 31-10-2001 à 08:58:50   

Reply

Marsh Posté le 31-10-2001 à 10:07:58    

C'est pas forcément très efficace, mais tu peux déjà essayer de parcourir tout le tableau jusqu'à ce que tu trouves l'élément en question. Sa position est ensuite donnée immédiatement par les variables que tu as utilisées pour les boucles.

Reply

Marsh Posté le 31-10-2001 à 10:25:52    

Ben generalement c la ùmethode c ca :
Parcourir le tableau a la recherche d'un element, bon apres bien sur y a differents methodes suivant le tableau.

Reply

Marsh Posté le 31-10-2001 à 10:31:36    

c'est ce que j'ai fait mais y'a rien qui se passe ?
voici le code
 
$montablo=array("lundi","mardi","mercredi","jeudi" );
 
for($i=0;$i<count($montablo);$i=$i+1){
if($montablo[$i]==$saisie){
$x=$i+1;
echo "le jour suivant est $montablo[$x]  ";
}
}
 
 
avec evidement un formulaire qui ramène ici la variable saisie depuis un select

Reply

Marsh Posté le 31-10-2001 à 10:32:16    

la méthode la plus simple est de parcourir ton tableau élément par élément (boucle while) jusqu'à ce que tu trouves ce que tu cherches. Ton indeice est alors donné par la variable que tu incrémentes ds ta boucle.
maintenant, si ton tableau est ordonné, tu peux procéder par dichotomie (c bien ca le nom?): tu teste l'élément du milieu de ton tableau ( partie entière de (array.length/2)) si c plus êtit tu fais la même chose sur la moitié de de gauche, si c plus grand tu fais la même chose sur la moitié de droite, sinon t'as trouvé ta valeur. C un peu plus rapide, mais ca marche qu'avec les tableaux ordonnés

Reply

Marsh Posté le 31-10-2001 à 10:35:02    

Putain ca me rappelle mes cours d'algo tout ca.
Moi je crois que c le bon terme.
 
Mais un while tout con suffit svt.
 
Ou un for si tu as plusieurs fois l'entrée.

Reply

Marsh Posté le 31-10-2001 à 10:36:15    

c sur que pour un tableau à 5 entrées, faut pas se faire chi... à optimiser... le code barbare suffit :)

Reply

Marsh Posté le 31-10-2001 à 10:39:10    

je veux savoir pourquoi ce code ne donne rien en résultat ?
 
pourtant il parait juste !!!!!
 
d'après mais test, la condition n'est pas remplie dans le if
et quand j'affiche le contenu de $saisie, j'ai bien un string contenant le choix du formulaire ????!!

Reply

Marsh Posté le 31-10-2001 à 10:40:06    

Ben si saisie est bien renseigné tron truc fonctionne.

Reply

Marsh Posté le 31-10-2001 à 10:40:57    

Je viens de tester ton code et il marche chez moi.
 
Comment est remplie saisie ?

Reply

Marsh Posté le 31-10-2001 à 10:40:57   

Reply

Marsh Posté le 31-10-2001 à 11:02:17    

en faite le formulaire est bien réaliser puisque il peut m'afficher les valeurs saisie dans la page de traitement.
 
je peux faire un echo $saisie sans problème.
 
mais c'est lors du test dans la condition du if qu'il ne reconnait plus la variable $saisie

Reply

Marsh Posté le 31-10-2001 à 11:03:40    

ton echo qui fonctionne il se trouve sur la meme page de ton test ?

Reply

Marsh Posté le 31-10-2001 à 11:07:59    

bien oui.
 
aarrhhhhhhgggg!

Reply

Marsh Posté le 31-10-2001 à 13:04:48    

si tu reçois la valeur d'un select, il est plus facile d'associer 0 à lundi, 1 à mardi, ...
<SELECT Name="numjour">
<OPTION VALUE='0'>Lundi</OPTION>
<OPTION VALUE='1'>Mardi</OPTION>
<OPTION VALUE='2'>Mercredi</OPTION>
...
</SELECT>
 
et tu le récupères avec  
echo $montablo[$numjour];
 
;)
 
si tu veux le jour suivant, plutot que de calculer (si tu n'en as pas besoin ailleur),  
- arrange toi pour que la valuer 0 corresponde à mardi, 1 à mercredi, etc.... dans ton tableau
- ou bien met directement dans ton select <option value="0">Mardi</option> ...
pcq avec ton +1 tu dois prendre en compte que si l'utilisateur sélectionne mercredi (qui est le dernier jour de ton tableau) echo $monablo[sizeof($montablo)+1] te donnera koi ???

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed