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 :

[Tableaux] utilisation de array_rand - extraire la cles et les valeurs


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Par défaut [Tableaux] utilisation de array_rand - extraire la cles et les valeurs
    Bonjour,
    Je débute dans PHP, et je n'arrive pas a faire ce que je souhaite.


    Je travaille sur des sites en PHP et XML qui n'ont pas étés développé par moi-même.
    il met demandé d'effectuer une sélection aux hasards de 5 enregistrements pour les afficher.

    Pour cela j'ai trouvé la commande array_rand.
    J'envoi le résultat dans un fichier
    A savoir que toutes les donnees de mon XML sont mis dans $arr_toutesdata :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    srand((double)microtime()*10000000);
    $arr_hasard = array();
     
    $arr_hasard = array_rand ($arr_toutesdata, 5);
     
    file_put_contents("xml/donnees_hasard.cache", serialize($arr_hasard));
    Plusieur problème se pose alors :
    Cette commande n'extrait que les clès sans extraire les valeurs.

    Je ne sais pas comment retrouvé toutes les informations contenu dans arr_toutesdata avec la clès récupéré dans donnees_hasard.cache ? a moins qu'il soit possible d'extraire les clès + les valeurs de $arr_toutesdata et au hazars pour directement les mettres dans le fichier donnees_hasard.cache .

    Si qq a une idée, des questions, des orientations ? cette manip est urgente et très très importante. Si vous pouvez répondre rapidement je vous en remercie.

  2. #2
    Membre émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Par défaut
    Salut,

    Comme je n'ai jamais utilisé cette fonction, je suis allé voir la doc pour me renseigner et que vois je en exemple ICI :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    srand ((double) microtime() * 10000000);
    $input = array ("Neo", "Morpheus", "Trinitée", "Cypher", "Tank");
    $rand_keys = array_rand ($input, 2);
    print $input[$rand_keys[0]]."\n";
    print $input[$rand_keys[1]]."\n";
    ?>
    De plus il est dit que la fonction se content d'extraire les clés. Elle ne génère pas un sous tableau aléatoire.

    Donc pas moyen d'avoir la valeur. C'est pour cela que dans l'exemple il extrait la valeur à partir du tableau original.

    Edit : De plus il est dit en note que depuis PHP 4.0.2, le genératuer de nombre aléatoire et initialisé automatiquement donc plus besoin de le faire

    Pierre

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Par défaut
    Merci de ta réponse.

    C'est sur le meme document que j'avais trouvé la commande.
    Sinon il y a pas moyen avec une autre commande de récupérer aux hasard plusieurs lignes dans un tableau avec inclu les valeurs,.

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Tu souhaites une autre commande qui ferait exactement la même chose ?

    Ce code, fourni par FCYPBA, fonctionne très bien et correspond tout à fait à ce que tu souhaites :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $input = array ("Neo", "Morpheus", "Trinitée", "Cypher", "Tank");
    $rand_keys = array_rand ($input, 2);
    echo $input[$rand_keys[0]]."<br />";
    echo $input[$rand_keys[1]]."<br />";

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Utilisation de array_rand
    Par Gunner4902 dans le forum Langage
    Réponses: 2
    Dernier message: 17/03/2008, 09h16
  2. Réponses: 8
    Dernier message: 18/09/2007, 11h25
  3. Réponses: 3
    Dernier message: 06/04/2006, 16h09
  4. Réponses: 5
    Dernier message: 17/02/2006, 15h30
  5. Réponses: 2
    Dernier message: 09/02/2006, 19h06

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