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 :

recupérer les valeurs d'un array multiple


Sujet :

Langage PHP

  1. #1
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut recupérer les valeurs d'un array multiple
    Salut

    Après de multiples essais, lecture de tutos, recherche d'exemples dans se forum, je n'arrive pas à récupérer 2 des champs dans une boucle foreach.
    Mon tableau $ListQRZ (suite à une extraction conditionnelles d'un tableau 1800 lignes d'enregistrements).
    var_dump($ListQRZ) donne (ici j'ai ajouté un saut de ligne pour voir les 3 groupeS
    array(3) { [840]=> array(10) { ["indicatif"]=> string(5) "F4ZZD" ["nomprenom"]=> string(14) "Major patrice" ["adresse"]=> string(23) "16 rue des pommes" ["cp"]=> int(74130) ["ville"]=> string(10) "Pars" ["pays"]=> string(6) "France" ["dateInf"]=> string(10) "01/01/2099" ["infos"]=> string(64) "Me joindre par Email" ["position"]=> array(3) { ["lat"]=> float(47.4651301) ["lng"]=> float(7.4441083) ["alt"]=> int(462) } ["affichage"]=> string(1) "o" }
    [968]=> array(10) { ["indicatif"]=> string(5) "F2ABC" ["nomprenom"]=> string(13) "Durendal Jacques" ["adresse"]=> string(29) "38 Rue Des ruchers" ["cp"]=> int(74130) ["ville"]=> string(10) "LouHan" ["pays"]=> string(6) "France" ["dateInf"]=> string(10) "20/11/2022" ["infos"]=> string(0) "" ["position"]=> array(3) { ["lat"]=> float(46.0764154) ["lng"]=> float(6.2777968) ["alt"]=> int(943) } ["affichage"]=> string(1) "o" }
    [978]=> array(10) { ["indicatif"]=> string(5) "F3XYZ" ["nomprenom"]=> string(11) "NORO Loîc" ["adresse"]=> string(17) "199 Avenue du chateau" ["cp"]=> int(77213) ["ville"]=> string(10) "Carcasonne" ["pays"]=> string(6) "France" ["dateInf"]=> string(10) "23/01/2023" ["infos"]=> string(0) "" ["position"]=> array(3) { ["lat"]=> float(45.0626923) ["lng"]=> float(6.9431646) ["alt"]=> int(1000) } ["affichage"]=> string(1) "o" } }
    Mes derniers essais, qui bien sûr ne fonctionne pas (j'en ai fait beaucoup plus mais supprimer les plus anciens)
    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
    19
    20
    				$QRZList = "";
    				$Idx;
    				for ($i = 0, $iMax = count($ListQRZ); $i < $iMax; $i++) {
    					$Idx=current($ListQRZ);
    					echo $Idx;
    					$QRZList = $ListQRZ[$Idx]['indicatif'];
    					if ($i < count($ListQRZ) - 1) {
    						$QRZList .= ",";
    					}
     
     
    				foreach($ListQRZ as $qrz){
    					//pour chaque élément de $adresse crée la variable $element
    					foreach($qrz as $element){
    						//écris le $element sur la même ligne avec un tiret et des espaces
    						$QRZList += $element.['indicatif'];
    					}
    				}
    				echo "<br><br>" . var_dump($QRZList);
    			}
    J'ai donc besoin de créer un tableau, $QRZList tout simple qui se présenterait comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $QRZList= array("F4HOY", "F4JQM", "F4JVM");
    Merci de votre lecture et de l'aide que vous pourrez m'apporter.

    Motif de l’édit: modification des données pouvant devenir sensible.

  2. #2
    Nb
    Nb est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 423
    Points
    423
    Par défaut
    Salut,
    j'espere que les données que tu viens de publier publiquement sont factices....

    Au delà de ca je ne comprends pas trop ton post car les donnees que tu manipules et le bout de code ne semblent pas du tout aller ensemble. De même les commentaires ne correspondent pas au code qu'ils commentent...
    De ce que je vois depuis les données que tu as fournies et ce que tu sembles attendre, un simple foreach semble suffire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $QRZList = [];
    foreach($ListQRZ as $qrz) {
        $QRZList[] = $qrz['indicatif'];
    }
    $QRZList = implode(', ', $QRZList);

  3. #3
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Salut
    Citation Envoyé par Nb Voir le message
    Salut,
    j'espere que les données que tu viens de publier publiquement sont factices....
    Non, elles sont réelles, accessible déjà depuis plusieurs années ,ICI par contre de temps en temps je reçois un mail me demandant de ne pas figurer dans mon programme, donc je vais modifier mon premier postage.

    En tous cas merci Nb, le code fournit me donne satisfaction, j'ai bien la liste des indicatifs dans la variable tableau $QRZListMerci

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 896
    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 896
    Points : 6 655
    Points
    6 655
    Par défaut
    Même pas besoin de faire une boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $indicatifs = array_column($ListQRZ, 'indicatif')

  5. #5
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Salut
    Citation Envoyé par CosmoKnacki Voir le message
    Même pas besoin ...
    Merci, je garde cette syntaxe sous le coude, mais je doit remplir la liste d'indicatif suivant le CP (plutôt le département).
    Ce qui est devenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    				foreach($ListQRZ as $qrz) {
    					if (substr($qrz['cp'],0,2)==$QuelDep){
    						$QRZList[] = $qrz['indicatif'];
    					}
    				}
    $QuelDep étant un des paramètres de la requête $QuelDep = $_REQUEST["queldep"];

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    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 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Dans ce cas, pour continuer sur les figures de style php-golf, tu peux appliquer un array_filter() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $r = array_column(
        array_filter($ListQRZ, fn ($e) => str_starts_with($e['cp'], $QuelDep)),
        'indicatif'
    );

  7. #7
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Salut Séb
    Ben j'en ai encor bien des choses à réapprendre dans le langage PHP, merci, je vais approfondir avec ses nouvelles (pour moi) syntaxes/fonctions.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/08/2008, 16h20
  2. Recupérer les valeurs d'un select multiple
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/02/2008, 11h49
  3. Réponses: 9
    Dernier message: 28/06/2006, 11h11
  4. [JSP] Récupérer les valeurs d'un SELECT multiple
    Par ran_hery dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 15/05/2006, 15h56
  5. Récupérer les valeurs d'un <select> multiple
    Par vg33 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/10/2005, 11h38

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