par
@rthur » 20 févr. 2015, 09:49
Mais s'agit-il d'un tableau malgré l'absence de déclaration array ?
Il s'agit bien d'un tableau. C'est l'avantage du PHP où le développeur n'a pas besoin de typer explicitement ses variables, PHP va se débrouiller tout seul pour s'adapter et ça fonctionne bien dans 99% des cas.
Comment faire au plus simple pour ajouter d'autre collection (gruyère, enclume, etc.) sans répéter à chaque fois $collection[c][gru][t], etc. ?
Pas sur de comprendre la question, mais si tu fonctionnes par collection, effectivement tu peux faire des tableaux multidimensionnels :
$collection['navets'][]="navet blanc";
$collection['navets'][]="navet noir";
$collection['gruyeres'][]="gruyère AOP Suisse";
$collection['gruyeres'][]="gruyère d'alpage";
$collection['gruyeres'][]="gruyère bio";
$collection['enclumes'][]="enclume de forgeron";
$collection['enclumes'][]="enclume de cordonnier";
Les crochets vides indiquent à PHP d'ajouter dans le tableau $collection['navets'], l'élément navet blanc, puis un deuxième pour les navets noir, etc...
Au final ton tableau $collection va contenir 3 éléments dont la clé est : navets, gruyeres et enclumes qui sont chacun eux-même des tableaux et qui contiennent leur propres éléments. $collection['navets'] va contenir 2 élements dont la valeur est navet blanc et navet noir
Une dernière question concernant les tableaux array, comment faire s'afficher plusieurs variable du tableau à la suite sans être obligé de réécrire print_r à chaque fois ? Voici le code :
$ref = array (
'a' => $f = substr($_GET['x'], 0, 3),
'b' => $g = substr($_GET['x'], 1, 2),
'c' => $h = substr($_GET['x'], 7, 4),
'd' => $i = substr($_GET['x'], 13, 1),
'e' => $j = substr($_GET['x'], 25, 4)
);
print_r ($ref[a][b][c]);
Le print_r avec les crochets à la suite ne fonctionne pas.
Pour afficher tous les éléments d'un tableau :
print_r ($ref);
Mais si tu veux faire un affichage propre, il vaut mieux faire une boucle avec foreach :
foreach ($ref as $element_tablo) {
print $element_tablo."<br />";
}
[quote="keush"]Mais s'agit-il d'un tableau malgré l'absence de déclaration array ?[/quote]
Il s'agit bien d'un tableau. C'est l'avantage du PHP où le développeur n'a pas besoin de typer explicitement ses variables, PHP va se débrouiller tout seul pour s'adapter et ça fonctionne bien dans 99% des cas. :D
[quote="keush"]Comment faire au plus simple pour ajouter d'autre collection (gruyère, enclume, etc.) sans répéter à chaque fois $collection[c][gru][t], etc. ?[/quote]
Pas sur de comprendre la question, mais si tu fonctionnes par collection, effectivement tu peux faire des tableaux multidimensionnels :
[php]$collection['navets'][]="navet blanc";
$collection['navets'][]="navet noir";
$collection['gruyeres'][]="gruyère AOP Suisse";
$collection['gruyeres'][]="gruyère d'alpage";
$collection['gruyeres'][]="gruyère bio";
$collection['enclumes'][]="enclume de forgeron";
$collection['enclumes'][]="enclume de cordonnier";[/php]
Les crochets vides indiquent à PHP d'ajouter dans le tableau $collection['navets'], l'élément navet blanc, puis un deuxième pour les navets noir, etc...
Au final ton tableau $collection va contenir 3 éléments dont la clé est : navets, gruyeres et enclumes qui sont chacun eux-même des tableaux et qui contiennent leur propres éléments. $collection['navets'] va contenir 2 élements dont la valeur est navet blanc et navet noir
[quote="keush"]Une dernière question concernant les tableaux array, comment faire s'afficher plusieurs variable du tableau à la suite sans être obligé de réécrire print_r à chaque fois ? Voici le code :
[php] $ref = array (
'a' => $f = substr($_GET['x'], 0, 3),
'b' => $g = substr($_GET['x'], 1, 2),
'c' => $h = substr($_GET['x'], 7, 4),
'd' => $i = substr($_GET['x'], 13, 1),
'e' => $j = substr($_GET['x'], 25, 4)
);
print_r ($ref[a][b][c]);[/php]
Le print_r avec les crochets à la suite ne fonctionne pas.[/quote]
Pour afficher tous les éléments d'un tableau :[php] print_r ($ref);[/php]
Mais si tu veux faire un affichage propre, il vaut mieux faire une boucle avec foreach :
[php]foreach ($ref as $element_tablo) {
print $element_tablo."<br />";
}[/php]