Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1577 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème d'array

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'array

n°2008162
caribouuu
Posté le 08-07-2010 à 19:58:52  profilanswer
 

Salut, j'aimerais réorganiser mon array mais je vois pas comment faire. J'ai essayé de diverses façon avec des foreach mais je n'arrive pas à obtenir le résultat escompté...

 

En fait j'utilise une api (flickr) qui me renvoit un array qui se présente comme ça:

 
Code :
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [4774155148] => Array
  6.                 (
  7.                     [service_id] => 84
  8.                     [flickrPicId] => 4774155148
  9.                     [photolink] => http://farm5.static.flickr.com/4096/4774155148_39f95ee3a4.jpg
  10.                     [photodate] => 1278584637
  11.                     [user_id] => 44
  12.                 )
  13.             [4774146102] => Array
  14.                 (
  15.                     [service_id] => 84
  16.                     [flickrPicId] => 4774146102
  17.                     [photolink] => http://farm5.static.flickr.com/4099/4774146102_2f30c5356c.jpg
  18.                     [photodate] => 1278584192
  19.                     [user_id] => 44
  20.                 )
  21.             [4774099090] => Array
  22.                 (
  23.                     [service_id] => 84
  24.                     [flickrPicId] => 4774099090
  25.                     [photolink] => http://farm5.static.flickr.com/4079/4774099090_92e870e2ce.jpg
  26.                     [photodate] => 1278581958
  27.                     [user_id] => 44
  28.                 )
  29.             [4748347869] => Array
  30.                 (
  31.                     [service_id] => 84
  32.                     [flickrPicId] => 4748347869
  33.                     [photolink] => http://farm5.static.flickr.com/4120/4748347869_bed829a760.jpg
  34.                     [photodate] => 1277902930
  35.                     [user_id] => 44
  36.                 )
  37.             [4748347723] => Array
  38.                 (
  39.                     [service_id] => 84
  40.                     [flickrPicId] => 4748347723
  41.                     [photolink] => http://farm5.static.flickr.com/4115/4748347723_6af7939953.jpg
  42.                     [photodate] => 1277902926
  43.                     [user_id] => 44
  44.                 )
  45.         )
  46.     [1] => Array
  47.         (
  48.             [4723647573] => Array
  49.                 (
  50.                     [service_id] => 84
  51.                     [flickrPicId] => 4723647573
  52.                     [photolink] => http://farm2.static.flickr.com/1175/4723647573_59afdc60fe.jpg
  53.                     [photodate] => 1277208645
  54.                     [user_id] => 2
  55.                 )
  56.             [4724299716] => Array
  57.                 (
  58.                     [service_id] => 84
  59.                     [flickrPicId] => 4724299716
  60.                     [photolink] => http://farm2.static.flickr.com/1407/4724299716_8a54a35fd7.jpg
  61.                     [photodate] => 1277208643
  62.                     [user_id] => 2
  63.                 )
  64.             [4723647485] => Array
  65.                 (
  66.                     [service_id] => 84
  67.                     [flickrPicId] => 4723647485
  68.                     [photolink] => http://farm2.static.flickr.com/1344/4723647485_4b31be7bee.jpg
  69.                     [photodate] => 1277208642
  70.                     [user_id] => 2
  71.                 )
  72.         )
  73.   [2]=> etc etc...
  74. )
 

Je voudrais obtenir ce résultat:

 
Code :
  1. Array
  2. (
  3.     [4723647485] => Array
  4.         (
  5.             [2] =>array
  6.                     (
  7.                      [service_id] => 84
  8.                      [flickrPicId] => 4723647485
  9.                      [photolink] => http://farm2.static.flickr.com/1344/4723647485_4b31be7bee.jpg
  10.                      [photodate] => 1277208642
  11.                      [user_id] => 2
  12.                     )   
  13.         )
  14.   // etc.. idem pour chaque flikrPicId, je ne veux plus de la première couche (les keys avec des valeurs numériques)
 

en gros la première couche ce serait des keys qui sont la valeur du flickrPicId.
la deuxième couche ce serait le numero de l'user_id.
et en 3eme couche on remet toutes les infos telles quelles (même si ça se répète).
Et on fait ça pour chaque flickrPicId.

 


Ce problème me casse la tête, je suis encore loin d'être un pro du php, est ce qu'il y a une façon simple d'arriver au résultat escompté ou est-ce qu'il faut carrément créer une fonction?


Message édité par caribouuu le 08-07-2010 à 19:59:52

---------------
Bla (blaa bbla)
mood
Publicité
Posté le 08-07-2010 à 19:58:52  profilanswer
 

n°2008186
erwan83
Du Shift DEL tu te méfieras !
Posté le 09-07-2010 à 05:48:42  profilanswer
 

il ne manque pas des virgules dans la sous partie des tableaux ?
et ce que tu veux faire, c'est bien incrémenter un tableau neuf avec des valeurs extraites d'autres tableaux ?
J'essaye de comprendre mais si je me plante dis moi.
Interessant j'essayerai de creuser avec ce qu'on m'a récemment appris sur les tableaux.


Message édité par erwan83 le 09-07-2010 à 05:49:32

---------------
http://www.ypikay.com
n°2008187
erwan83
Du Shift DEL tu te méfieras !
Posté le 09-07-2010 à 06:16:08  profilanswer
 

donc il te faudrait, si je suis toujours, faire une sorte de foreach sur un tableau à trois dimensions et à chaque boucle, tu remets tout ça dans un nouveau tableau mais à deux dimensions en faisant sauter la première ?
excuse, je parle de dimensions alors que ce sont peut etre des couches mais j'espère qu'on se comprend.
espérons que ça va orienter nos petits copains du forum PHP
Allez les gars filez-lui un coup de main !!!


---------------
http://www.ypikay.com
n°2008195
jeff@be
Posté le 09-07-2010 à 08:23:30  profilanswer
 

Le plus simple selon moi serait de partir d'un tableau vide, de boucler sur les deux niveaux (deux "for" ou "foreach" imbriqués) et au fur et à mesure de remplir ton nouveau tableau avec les clés et les valeurs que tu trouves dans le tableau de départ.
 
Essaie ceci par exemple (pas testé)
 

Code :
  1. $resultat = array();
  2. foreach ($flickr as $flickr1) {   // ici tu boucles sur le premier niveau
  3.     foreach ($flickr1 as $cleflickr2 => $valeurflickr2) {  // ici tu boucles sur le second niveau en lisant la clé (4723647485)
  4.        
  5.          $resultat[$cleflickr2] = array();
  6.          $resultat[$cleflickr2][$valeurflickr2['user_id']] = $valeurflickr2;
  7.     }
  8. }


n°2008532
caribouuu
Posté le 09-07-2010 à 23:11:28  profilanswer
 

Merci pour votre aide à tous les deux, ta solution fonctionne nickel jeff@be ;)  :jap:

 

Faut vraiment que j'apprenne à mieux maitriser les arrays et les foreach, ça me fait perdre un temps fou à chaque fois. Je vais me faire des petits exos maison de manipulation d'array pour bien assimiler les différentes possibilités


Message édité par caribouuu le 09-07-2010 à 23:11:44

---------------
Bla (blaa bbla)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème d'array

 

Sujets relatifs
probleme d'organisation d'un tableau php (array)Problème d'affichage double boucle (mysql_fetch_array)
suppression dans un array (tableau) [modifié][PHP] Problème Array : test de valeurs negatives de suite
Array crée a partir d'une bdd (probléme)...Probleme avec un array
Problème d'ajout dans un arrayProblème de tableau array
Problème avec mysql_fetch_array()Perl :: probleme d'array et de length [resolu]
Plus de sujets relatifs à : Problème d'array


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR