Tableaux : changer la position du pointeur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Tableaux : changer la position du pointeur

par maheu » 14 sept. 2008, 12:47

Merci pour vos réponses (avec un peu de retard!)

sadeq tu as raison ma fonction serait inutile dans le cas d'un tableau indexé à partir de 0 et de raison n+1, cependant dans mon cas en fait les clés de mon tableau étaient aléatoires, et j'aurai eu besoin à partir d'une clé connue de pouvoir trouver les clés suivante et précédente.

Enfin j'ai finit par repenser mon code et créer un tableau ordonné à partir de 0 et procéder comme suit :

Code : Tout sélectionner

$maCle = array_search($maValeur, $monTableau); switch($sens) { case 'precedent' : for($i = 0; $i != $maCle; $i++) { $cleCourante = next($montTableau); } $clePrecedente = prev($montTableau); break; case 'suivant' : for($i = 0; $i != $maCle; $i++) { $cleCourante _id = next($montTableau); } $cleSuivante = next($montTableau); break; }

par sadeq » 10 sept. 2008, 17:15

T'as raison :lol:

par _activmik » 10 sept. 2008, 16:46

Ok, c'était juste pour pas que quelqu'un prenne tel quel les informations et post en disant que ça marche pas :wink: Loin de moi l'idée de te corriger :D

par sadeq » 10 sept. 2008, 16:41

Ok, mais je ne citais pas spécialement la fonction prev() intégrée. J'ai édité mon message précédent pour transformer next en suivant et previous en précédent pour plus de clarté.

Re: Tableaux : changer la position du pointeur

par _activmik » 10 sept. 2008, 15:51

next() ou previous().
prev() :wink:

Re: Tableaux : changer la position du pointeur

par sadeq » 10 sept. 2008, 15:19

_activmik a raison, tu es en train de réinventer la roue et c'est un travail sup qui ne sert à rien exactement comme ta fonction :
$curseur = poscurseur($montTableau, 1); // c'est cette fonction qui m'intéresserait ! elle positionnerai le curseur de monTableau sur la valeur "test1" (clé = 1)
Car si la fonction poscurseur() positionne le curseur à 1 alors $curseur est systématiquement 1 et celà revient à dire, tout simplement, que :
$curseur = 1;
Car positionner un curseur n'est pas une opération qui implique physiquement le tableau mais c'est une opération logiquement préparatoire qui implique une variable jouant le rôle d'indice de tableau (comme $curseur) Positionner le curseur à 1 s'écrit alors : $curseur = 1;

Quant aux opérations: suivant() ou pécédent(), elles vont agir sur la valeur de l'indice $curseur. Suivant() va faire $curseur++ et Précédent() fera $curseur--

Le curseur $curseur est donc le seul impliqué physiquement par les opérations de positionnement, il est un élément commun (partagé) utilisé par l'ensemble des fonctions de positionnement. Il est donc une variable globale ou partagée.

par _activmik » 10 sept. 2008, 15:10

Tu as tout ce qu'il te faut avec les fonctions array de php :

current
next
prev


Voir même histoire d'optimiser ta fonction :

key
array_key_exists
in_array (si tu passes par une valeur)

Et n'oublie pas le terrible foreach pour parcourir ton tableau.

Bonne chance :wink:

Tableaux : changer la position du pointeur

par maheu » 10 sept. 2008, 13:25

Bonjour à tous!

je cherche une fonction qui permette de se positionner dans un tableau à hauteur d'une clé connue.

Exemple :

Code : Tout sélectionner

$montTableau= array("test0","test1","test2","test3"); $curseur = poscurseur($montTableau, 1); // c'est cette fonction qui m'intéresserait ! elle positionnerai le curseur de monTableau sur la valeur "test1" (clé = 1) //Ensuite je peux utiliser les fonctions next ou prev pour connaitre les éléments précédents et suivants ma clé $suivant = next($montTableau);
merci de votre aide!