[RESOLU] Parcourir un tableau de tableau

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Parcourir un tableau de tableau

Re: Parcourir un tableau de tableau

par Kraim88 » 10 sept. 2014, 13:02

Merci beaucoup

Re: Parcourir un tableau de tableau

par toytoy » 10 sept. 2014, 11:20

$tab1 = array(
               array ('test1','10/01/2001','11/11/2001'),
               array ('test2','12/02/2002','12/12/2002')
);

$tab2 = array ('codeagence','dateappel','datefin');

$output = array();
$ligne = array();

//Pour fusionner tab1 avec tab2, où tab deux sera les clés associatives
//On suppose que la taille de tab2 = tab1[]

for ($i=0; $i<count($tab1); $i++) {
   for ($j=0; $j<count($tab1[$i]); $j++) {
      $ligne[$tab2[$j]] = $tab1[$i][$j];
   }
   $output[] = $ligne;
}

Ton erreur est dû au dernier foreach,, tu réassignes pour la même clé les différentes valeurs de ton sous-tableau
foreach ($structure as $nameField) {
                foreach ($data as $value) {
                    $newDataUser[$nameField] = $value;
                }
            }  
En effet ton $namefield ne prendras sa prochaine valeur qu'après que le foreach interne soit terminer :/, d'ou le fait que tes clés possèdent la dernière valeur de ton tableau

Parcourir un tableau de tableau

par Kraim88 » 10 sept. 2014, 09:07

Bonjour,
J'ai deux tableaux, et j'aimerais à partir de ces deux tableau en crée un nouveau.

Voici les var_dump des ces deux tableaux.
array (size=2)
  0 =>
    array (size=3)
      0 => string 'test1' (length=6)
      1 => string '10/01/2001' (length=10)
      2 => string '11/11/2001' (length=10)
  1 =>
    array (size=3)
      0 => string 'test2' (length=7)
      1 => string '12/02/2002' (length=10)
      2 => string '12/12/2002' (length=10)
et
array (size=3)
  0 => string 'codeagence' (length=10)
  1 => string 'dateappel' (length=9)
  2 => string 'datefin' (length=7)
J'aimerais obtenir ceci
array (size=3)
  codeagence => string 'test1' (length=10)
  dateappel => string '10/01/2001' (length=9)
  datefin => string '11/11/2001' (length=7)
array (size=3)
  codeagence => string 'test2' (length=10)
  dateappel => string '12/02/2002' (length=9)
  datefin => string '12/12/2002' (length=7)
Voici mon code
public function set_dataUser($dataUser){
  $structure = $this->_manager->get_templateStructure();

 foreach ($dataUser as $data) {
            foreach ($structure as $nameField) {
                foreach ($data as $value) {
                    $newDataUser[$nameField] = $value;
                }
            }            
        }
  $this->_dataUser = $newDataUser;
}
Le problème c'est que j’obtiens ceci.
array (size=3)
  'codeagence' => string '12/12/2002' (length=10)
  'dateappel' => string '12/12/2002' (length=10)
  'datefin' => string '12/12/2002' (length=10)
Je n'arrive pas à parourrir le tableau de tableau.
Il y a une méthode particulère à adopter?