Bonjour

Je cherche à balayer un tableau à deux dim mais je peine un peu

voila mon code


$marques_sql=Doctrine_Core::getTable('Marque')->getmarques();

$tab=array();
$i=0;
foreach($marques_sql as $marque){
$tab[$i]['id']=$marque['id'];
$tab[$i]['marque']=$marque['marque'];

$modeles_sql=Doctrine_Core::getTable('Modele')->getbymarque($marque['id']);
$j=0;

foreach($modeles_sql as $mod){
	$tab[$i][$j]['id']=$mod['id'];
	$tab[$i][$j]['mod']=$mod['modele'];
	$j++;
}

$i++;
}


après un var_dump j'obtiens ca :


array
  0 => 
    array
      'id' => string '1' (length=1)
      'marque' => string 'peugeot' (length=7)
      0 => 
        array
          'id' => string '2' (length=1)
          'mod' => string '406' (length=3)
  1 => 
    array
      'id' => string '2' (length=1)
      'marque' => string 'renault' (length=7)



et bizarrement quand je balaye mes datas:


foreach($tab as $marque){
	echo $marque['marque'];
foreach($marque as $modele){
	echo $modele['mod'];	
}

}
var_dump($tab);



j'obtiens cela :

a écrit :
peugeot1p406renault2r


il me rajoute des lettres dans mon second array

Pourquoi ??
Modifié par phpCbien (30 Jan 2013 - 17:15)
en effet

bizarrement, voila ce qu'il ressort alors que je n'ai que deux marques et un modèle

foreach($tab as $marque){
        echo 'marque : ' .$marque['marque'].  "<br />";
foreach($marque as $modele){
        echo 'modele : ' .$modele['name'].  "<br />";
}

}


donne :

marque : peugeot
modele : 1
modele : p
modele : 406
marque : renault
modele : 2
modele : r

encore une fois le var_dump affiche pourtant ceci :

0 =>
    array
      'id' => string '1' (length=1)
      'marque' => string 'peugeot' (length=7)
      0 =>
        array
          'id' => string '2' (length=1)
          'name' => string '406' (length=3)
  1 =>
    array
      'id' => string '2' (length=1)
      'marque' => string 'renault' (length=7)