par
orgerix » 23 déc. 2009, 21:45
Lorsque tu fais $array[], ca revient à rajouter au tableau une entrée indicée par l'index numérique suivant. Dans ton cas, le code equivalent est :
$clients=array
("France"=>array("nom"=>"Bob","adresse"=>"6,rue bilo","code postal"=>"50520"),
"Espagne"=>array("nom"=>"Alice","adresse"=>"8,rue espagna","code postal"=>"3054-a")
);
$clients['France'][0] = array('nom' => 'Alain','adresse'=>'16 rue sapins','code postal'=>'18520');
$clients['France'][1] = array('nom' => 'Claude','adresse'=>'15 rue sapins','code postal'=>'18520');
print_r($clients);
Ton problème viens de la mauvaise définition de ton tableau, car sa structure te permet d'avoir un seul client par pays. Voyons comment construire ton tableau.
Au départ, tu fais un tri en fonction du pays. Ton premier niveau représente un tableau de pays.
Donc la déclaration :
$clients=array('nom1'=>$pays1,...);
Dans chaque pays, tu peux avoir plusieurs clients.Il faut donc les référencer dans un tableau (deuxième niveau). Puisque apparament tu n'a rien pour les indexer, le tableau ne sera pas associatif.
$pays = array ($client1,$client2,$client3,...);
Et chaque client est un tableau associatif (troisième niveau).
Avec cette structure, chaque niveau correspond au même concept (pays, liste de client ou client), ce qui rendra ton exploitation beaucoup plus facile.
Ai je un peu éclairci la situation ?
Lorsque tu fais $array[], ca revient à rajouter au tableau une entrée indicée par l'index numérique suivant. Dans ton cas, le code equivalent est :
[php]$clients=array
("France"=>array("nom"=>"Bob","adresse"=>"6,rue bilo","code postal"=>"50520"),
"Espagne"=>array("nom"=>"Alice","adresse"=>"8,rue espagna","code postal"=>"3054-a")
);
$clients['France'][0] = array('nom' => 'Alain','adresse'=>'16 rue sapins','code postal'=>'18520');
$clients['France'][1] = array('nom' => 'Claude','adresse'=>'15 rue sapins','code postal'=>'18520');
print_r($clients);[/php]
Ton problème viens de la mauvaise définition de ton tableau, car sa structure te permet d'avoir un seul client par pays. Voyons comment construire ton tableau.
Au départ, tu fais un tri en fonction du pays. Ton premier niveau représente un tableau de pays.
Donc la déclaration :
$clients=array('nom1'=>$pays1,...);
Dans chaque pays, tu peux avoir plusieurs clients.Il faut donc les référencer dans un tableau (deuxième niveau). Puisque apparament tu n'a rien pour les indexer, le tableau ne sera pas associatif.
$pays = array ($client1,$client2,$client3,...);
Et chaque client est un tableau associatif (troisième niveau).
Avec cette structure, chaque niveau correspond au même concept (pays, liste de client ou client), ce qui rendra ton exploitation beaucoup plus facile.
Ai je un peu éclairci la situation ?