PHP tableaux multidimensionnels

Nouveau WRInaute
Bonjour chuis une debutante en php et j'ai un tout petit probleme tout bete mais que je n'arrive pas a regler.

En fait j'ai un tableau multidimensionel qui est de cette forme
$tableau= array($design=>array("Email","Signal","Frequence","Params"), $process=>array($email,$stereo,$freq,$params), $display=>array($output));
en fait ce que je veux c'est faire une boucle sur les elements du tableau "design" uniquement mais vu que celui ci est a l'interieur du grand tableau comment suis je sensee faire.
:roll:

Merci du coup de main :)
 
WRInaute discret
Code:
foreach($tableau['design'] AS $cle=>$valeur){
   ...
}
cela fonctionnera mieux
plus d'infos > http://fr.php.net/foreach

je pense (ai-je tort ?) que le nom du tableau doit etre 'design' et non pas le contenu de la variable $design.
si ce n'est pas le cas alors, la solution de obi est celle qui fonctionne
 
WRInaute discret
jarreweb a dit:
Code:
foreach($tableau['design'] AS $cle=>$valeur){
   ...
}
cela fonctionnera mieux
plus d'infos > http://fr.php.net/foreach
Attendu que dans la construction de son tableau elle n'a pas mis de clef, utliser la forme racourcie présentée en premier me semble préférable
Code:
foreach (array_expression as $value)
    statement

Sinon pour le reste, j'ai présumé que son initlaisation de tableau était juste. Il est parfaitement valide, maitenant reflête-t-il l'intention de la programmeuse, rien n'est moins sûr.

Pour s'en assurer, rien de tel qu'un
Code:
echo '<pre>'.print_r($array,true).'</pre>';
juste après sa construction.
 
Nouveau WRInaute
Merci des reponses que vous m'avez donnees.
en fait ma premiere demarche avait ete de faire comme l'a suggere Obi en premier lieu j'avais donc fait
function build_page($for_algorithm){
echo(' <form action="aec_evaluation.php" enctype="multipart/form-data"
method="post">
<table>');
foreach ($for_algorithm[$design] as $a) {
foreach ($name as $b){

echo('<tr>
<td>'.$a.': &nbsp; </td>
<td> <input type="TEXT" name='.$b.' size="80"> </td>
</tr>');
}
}
echo('<tr>
<td> &nbsp; </td>
<td> <input type="SUBMIT" value="Send"> </td>
</tr>
</table>');
}

dans le code de cette function il y a ma boucle foreach que je testais hier sans succes et elle ressemble un peu a ce que tu as propose Obi mais je sais pas pkoi je ne vois pas apparaitre le formulaire que je voulais creer.
J'ai aussi suivi ton conseil j'ai aussi fait
echo '<pre>'.print_r($array,true).'</pre>'; et voici le resultat

Array
(
[] => Array
(
[0] =>
)

)

Je suis desolee je comprends pas bien le concept des cles est ce qu avec les cles je pourrai parcourir le tableau design?

Merci encore Obi et JarreWeb pour vos reponses et desolee je
suis une debutante du php
 
Nouveau WRInaute
j'ai re construit le tableau de cette maniere et il semble afficher quelque chose quans on fait le
echo '<pre>'.print_r($array,true).'</pre>';

$stm_requirements = array( "design" => array ("Email (please fill in)","Stereo signal file","Sampling frequency","params"), "process" => array ("Stereo_to_Multichannel.php","params"), "display" => array("resultat","param"));

au lieu de faire $design j'ai juste pris le nom de l'array "design"
normalement ca aurait du marcher non?

Je sais pas
 
WRInaute discret
ok, jarreweb avait bien raison, c'est ton tableau qui est mal construit.
Quand tu ecris en php

Code:
$a='plonk';
Ca veut dire stocke la chaine de caractères 'plonk' dans une variable, que l'on va apeller a. Le $ et le fait que $a soit à gauche du signe égal sont importants.

Pour faire référence au contenu de la variable a, on utilise également $, mais dans une expression, ex:
Code:
echo 'J'aime '.$a;

Maintenant, un tableau, c'est une association d'une clef et d'une valeur: si tu as la clef, tu retrouves la valeur qui y a été précédemment associée; e.g.
Code:
$tableau=array('plonk'=>'J'aime', 'céleri'=>'J'aime pô');
echo $tableau['plonk'];
Va t'afficher 'J'aime'
A noter que tu aurais pu écrire
Code:
echo $tableau[$a]
Le résultat aurait été le même, vu que la variable a contient 'plonk'

Maintenant, un tableau multi-dimensionnel, ce n'est qu'un tableau contenant des tableaux.
Quand tu écris
Code:
$tableau= array($design=>array("Email","Signal","Frequence","Params"), $process=>array($email,$stereo,$freq,$params), $display=>array($output));
Tu crées un tableau $tableau contenant trois éléments ayant chacun pour clef le contenu des variables $design, $process et $display.
Si ces variables sont vides, les trois éléments de ton tableau vont avoir la même clef ayant pour valeur '' (chaîne vide). Les clefs devant être uniques dans les tableaux, il ne conserve alors que la dernière valeur, dans ton cas array($output). Comme ta variable $output est vide, array($output) te crée un tableau avec un élément de clef 0 (par défaut, si on crée un élément sans spécifier sa clef, php met un nombre pour l'identifier, dans l'ordre des ajouts, en commençant par 0) et de valeur ''. Voilà l'explcation de ton
Array
(
[] => Array
(
[0] =>
)

)
C'est à dire un tableau à un élément de clef '' et de valeur : un tableau à un élément de clef 0 et de valeur vide.

Je doute fortement que ceci aye été ton intention. C'est la construction de ton tableau qui est à revoir, avant de se préoccuper d'itérer dessus :wink:
 
WRInaute impliqué
il me semble qu'en même que cette rubrique n'est pas indiqué pour ce genre de problèmes.
 
Nouveau WRInaute
Merci beaucoup Obi
La j'ai bien compris pourquoi ca fonctionnait pas.
En fait comme je debute je fais quelques test et tou jspre quand mm qu'en forgeant je deviendrai forgeronne.

Merci
 
WRInaute discret
txikiteo a dit:
jspre quand mm qu'en forgeant je deviendrai forgeronne.

Y'a que ça de vrai. Et aussi: "Cent fois sur le métier renouvellez votre ouvrage".

Une petite lecture régulière de phpfrance et du site officiel si tu ne'es pas hermétique à l'anglais t'aidera à avancer de façon plus rapide.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut