[php] FOREACH, mais jusqu'où ?

Résolu/Fermé
coccoweb Messages postés 141 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 17 février 2015 - 22 nov. 2010 à 01:37
coccoweb Messages postés 141 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 17 février 2015 - 23 nov. 2010 à 14:48
Bonjour,

Voila quelque temps que je cherche a savoir la limite d'un FOREACH PHP.

Je sais qu'il est capable d'afficher 2 variables (la clé et ça valeur)
Mais pour en afficher trois ou quatre ?
C'est possible ou dois-je travailler avec une boucle FOR voir WHILE ?


Si c'est possible, me donner un exemple type.

Merci pour votre aide.

A voir également:

1 réponse

coeus Messages postés 3021 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
22 nov. 2010 à 16:09
Bonjour !

Non, le foreach ne peut pas afficher trois ou quatre variables. Si tu veux afficher des arrays encastrés dans des arrays, il peut être nécessaire d'utiliser des foreach encastrés dans des foreach.

Personnellement, voici mon "éthique" d'utilisation de boucle :
foreach : quand j'ai un Array que j'utilise pour organiser ou afficher des valeurs, et que ce array a une construction et des caractéristiques bien précises (çva m'arrive souvent).
for : quand je dois répéter une opération un certain nombre de fois qui est défini (le nombre de fois "défini" peut être une variable, mais je sais au moins que cette variable existe).
while : pour certaines fonctions comme le mysql_fetch_array ou pour parcourir un dossier avec readdir(), ou lorsque je dois répéter une opération un nombre de fois que j'ignore totalement. Mais cette dernière situation ne m'arrive presque jamais, donc j'utilise à peu près toujours des for.

Pour répondre plus exactement à ta question, un aperçu du array dont tu disposes serait utile. Parce que je vois mal comment tu peux avoir plus de valeurs que la clé et sa valeur associée.

Supposons qu'on a :

$array_base = [
	$array_sous1 = [
		$array_sous_sous_1 = [...],
		$array_sous_sous_2 = [...],
		$array_sous_sous_3 = [...]
	],
	$array_sous2 = [
		$array_sous_sous_1 = [...],
		$array_sous_sous_2 = [...],
		$array_sous_sous_3 = [...]
	],
	$array_sous3 = [
		$array_sous_sous_1 = [...],
		$array_sous_sous_2 = [...],
		$array_sous_sous_3 = [...]
	],
];

Si tu veux le parcourir, ça devra ressembler à :
foreach ($array_base as $base => $element) {
	foreach ($element as $array_sous => $sous_element) {
		foreach ($sous_element as $array_sous_sous => $sous_sous_element) {
			[...]
		}
	}
}

Je sais que j'utilise beaucoup de "sous", j'espère que tu comprends où je veux en venir ;)

Est-ce que ça répond à ta question ?
1
coccoweb Messages postés 141 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 17 février 2015 27
23 nov. 2010 à 14:48
Parfait coeus, cette fois c'est qui me sauve ;-) en plus relativement complet.

Merci beaucoup
0