IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Extraire données d'un array


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut Extraire données d'un array
    Bonjour tout le monde,

    J'ai un tableau de cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    array {
    [0] => 'xxx',
    [1] => 'yyy',
    [2] => 'zzz'
    }
    Ensuite, j'ai une variable extraite de l'url
    $cle=zzz
    Ce que je voudrais obtenir, c'est la valeur entourant la variable $cle dans le tableau.

    Le résultat sur cet exemple donnerait :
    $precedent='yyy'
    $suivant='xxx' (vu que zzz était la dernière valeur du tableau, je reprend la première)

    Merci beaucoup de votre aide
    Vincent Pieplu
    Développeur Site Internet

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 101
    Points : 8 211
    Points
    8 211
    Billets dans le blog
    17
    Par défaut
    Trouver la clef d'un élément dans un tableau : array_search( )
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Voici ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $cles=array();
    while($result=mysql_fetch_array($requete)) {
    	$cles[]=$result['cle'];
    }
    $nbreKey=count($cles);
     
    $positionKey=array_search($cle,$cles);
     
    $precedent=$positionKey-1;
    $positionPrecedente=$cles[$precedent];
    if($precedent<=0) $positionPrecedente=$cles[$nbreKey];
     
    $suivant=$positionKey+1;
    $positionSuivante=$cles[$suivant];
    if($suivant>$nbreKey) $positionSuivante=$cles[0];
    Je n'ai pas de serveur pour tester pour le moment, qu'en pensez-vous ? Je suis à côté de la claque ?

    Merci
    Vincent Pieplu
    Développeur Site Internet

  4. #4
    Membre actif Avatar de stephanegib2
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 152
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par PIEPLU Voir le message
    Voici ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $positionKey=array_search($cle,$cles);
    $cle correspond à quoi ? je n'ai pas vu où tu là initialisé.

  5. #5
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    $cle est défini plus haut dans le code.
    J'ai pas tout à fait terminé ça, je mettrais le résultat final car ce qui est fait pour le moment ne fonctionne pas correctement ;=)
    Vincent Pieplu
    Développeur Site Internet

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 126
    Points : 179
    Points
    179
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // On récupère le nombre total de ligne dans le tableau
    $nbTab = count($cles);
     
    // On récupère la position de $cle dans $cles
    $positionKey = array_search($cle,$cles);
     
    // Un petit coup de modulo pour rester dans le tableau
    $avant = $cles[($positionKey-1)%$nbTab];
    $apres = $cles[($positionKey+1)%$nbTab];
    Bon, après c'est à adapter un petit peu, mais sa devrait marcher

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Si tu ne veux pas passer par une condition, tu peu ajouter en début $arr[2] et en fin $arr[0] comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
    $arr = array( 
     'xxx',
     'yyy',
     'zzz'
    );
    $key = array_search('xxx',$arr);
     
    array_unshift ($arr, $arr[count($arr)-1]);
    array_push($arr,$arr[1]);
     
    $key++;
     
    echo 'Précédent '.$arr[$key-1].'<br/>';
    echo 'Suivant '.$arr[$key+1].'<br/>';
    print_r($arr);
    ?>
    Conception / Dev

Discussions similaires

  1. [Python 2.X] Extraire données numpy array vers une liste ?
    Par Ben20 dans le forum Calcul scientifique
    Réponses: 4
    Dernier message: 05/03/2015, 11h30
  2. Extraire données d'un webservice , xml , php ..
    Par Lettue dans le forum Langage
    Réponses: 1
    Dernier message: 14/09/2006, 19h24
  3. Comparaison de données entre deux arrays
    Par sironimo dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 20/04/2006, 17h44
  4. Extraire données fichier txt
    Par philippef dans le forum Langage
    Réponses: 1
    Dernier message: 10/10/2005, 17h12
  5. [cr 8.5] comment exploiter les données d'un "array"
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 12
    Dernier message: 09/06/2005, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo