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 :

Boucle foreach de récupératin de données d'un tableau.


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    etudiant developpeur web
    Inscrit en
    Février 2018
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : etudiant developpeur web

    Informations forums :
    Inscription : Février 2018
    Messages : 99
    Points : 63
    Points
    63
    Par défaut Boucle foreach de récupératin de données d'un tableau.
    Bonjour,

    J'ai un tableau de données où pour chaque entrées j'ai un titre de film et une année. Dans un second tableau, je souhaiterai placer toutes les années des films mais sans redondance. J'ai donc pensé à une boucle foreach pour utiliser chaque entrée qui si elle est différente de toutes les entrées du tableau d'années se voit affecter à celui-ci ... euh tout le monde suit ou j'ai perdu quelqu'un... enfin je sais pas si je suis bien clair

    Voici mon code php :

    Code php : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    $movies = array (
    			array ( 'titre' => 'Les évadés', 'année' => '1994' ) ,
    			array ( 'titre' => 'Le parrain', 'année' => '1972' ) ,
    			array ( 'titre' => 'Le parrain, 2ème partie', 'année' => '1974' ) ,
    			array ( 'titre' => 'The Dark Knight: Le chevalier noir', 'année' => '2008' ) ,
    			array ( 'titre' => '12 hommes en colère', 'année' => '1957' ) ,
    			array ( 'titre' => 'La liste de Schindler', 'année' => '1993' ) ,
    			array ( 'titre' => 'Le seigneur des anneaux: Le retour du roi', 'année' => '2003' ) ,
    			array ( 'titre' => 'Pulp Fiction', 'année' => '1994' ) ,
    			array ( 'titre' => 'Le bon, la brute et le truand', 'année' => '1966' ) ,
    			array ( 'titre' => 'Fight Club', 'année' => '1999' ) ,
    			array ( 'titre' => 'Le seigneur des anneaux: La communauté de l\'anneau', 'année' => '2001' ) ,
    			array ( 'titre' => 'Forrest Gump', 'année' => '1994' ) ,
    			array ( 'titre' => 'L\'empire contre-attaque', 'année' => '1980' ) ,
    			array ( 'titre' => 'Inception', 'année' => '2010' ) ,
    			array ( 'titre' => 'Le seigneur des anneaux: Les deux tours', 'année' => '2002' ) ,
    			array ( 'titre' => 'Vol au-dessus d\'un nid de coucou', 'année' => '1975' ) 
                          );
          $listeAnnees[0] = '1927';
     
    foreach ($movies as $movie) 
    {
    	$anneeDuFilm = $movie['année'];
    	foreach ($listeAnnees as $listAnnee)
    	{
    		if ( $listAnnee != $anneeDuFilm )
    			{ $listAnnees[] = $anneeDuFilm;
     
    	}
    	}
     
    }
    ?>

    Donc j'ai un tableau de données $movies, un tableau $listeAnnees et je veux extraire chaque année associée à un film pour l'ajouter au second ... c'est peut-être plus clair comme ça .

    Je n'ai pas de retour d'erreur mais mon tableau ne contient toujours qu'une seule date.

    Merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En bref, tu veux extraire la liste des années des films à partir de la liste des films (et éventuellement, l'ajouter à une liste d'années existantes) Le plus simple est sans doute de prendre toutes les années et dédoublonner ensuite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach ($movies as $movie) 
    {
        // on ajoute à la liste
    	$listeAnnees[] = $movie['année'];
    }
    // on dédoublonne la liste
    $listeAnnees = array_unique($listeAnnees);
    Tu peux éventuellement utiliser sort ou natsort pour trier ton tableau d'années ensuite
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre du Club
    Homme Profil pro
    etudiant developpeur web
    Inscrit en
    Février 2018
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : etudiant developpeur web

    Informations forums :
    Inscription : Février 2018
    Messages : 99
    Points : 63
    Points
    63
    Par défaut Un grand merci
    Comme toujours je cherche compliqué là où c'est tout simple ... merci

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Tu peux aussi te passer de la boucle foreach en utilisant array_column:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listeAnnees  = array_unique(array_column($movies, 'année'));
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ah je savais bien qu'il y avait une fonction pour faire ça ! (mais impossible de remettre la main dessus )
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. Transferer les données d'une boucle foreach sans hidden
    Par shimomura22 dans le forum ASP.NET MVC
    Réponses: 4
    Dernier message: 05/01/2018, 14h19
  2. Réponses: 3
    Dernier message: 09/05/2016, 21h27
  3. Lecture de données à partir d'une boucle foreach
    Par Bootax dans le forum Langage
    Réponses: 2
    Dernier message: 26/03/2009, 21h23
  4. [Tableaux] la boucle foreach
    Par jeanfrancois dans le forum Langage
    Réponses: 7
    Dernier message: 09/03/2006, 17h29
  5. Réponses: 3
    Dernier message: 11/01/2006, 17h44

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