PHP tableaux multidimensionnels

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

txikiteo
Nouveau WRInaute
 
Messages: 10
Inscription: Mer Aoû 23, 2006 14:02

PHP tableaux multidimensionnels

Message le Mer Aoû 23, 2006 14:10

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 :)


obi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 238
Inscription: Mer Juil 26, 2006 10:53

Message le Mer Aoû 23, 2006 14:33

Code: Tout sélectionner
foreach ($tableau[$design] as $e){
echo $e;
}

devrait marcher.

jarreweb
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 192
Inscription: Ven Sep 12, 2003 8:17

Message le Mer Aoû 23, 2006 16:04

Code: Tout sélectionner
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


obi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 238
Inscription: Mer Juil 26, 2006 10:53

Message le Mer Aoû 23, 2006 16:17

jarreweb a écrit:
Code: Tout sélectionner
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: Tout sélectionner
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: Tout sélectionner
echo '<pre>'.print_r($array,true).'</pre>';
juste après sa construction.

txikiteo
Nouveau WRInaute
 
Messages: 10
Inscription: Mer Aoû 23, 2006 14:02

Message le Jeu Aoû 24, 2006 9:19

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

txikiteo
Nouveau WRInaute
 
Messages: 10
Inscription: Mer Aoû 23, 2006 14:02

Message le Jeu Aoû 24, 2006 9:38

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


obi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 238
Inscription: Mer Juil 26, 2006 10:53

Message le Jeu Aoû 24, 2006 10:42

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

Code: Tout sélectionner
$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: Tout sélectionner
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: Tout sélectionner
$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: Tout sélectionner
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: Tout sélectionner
$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:


lapi
WRInaute passionné
WRInaute passionné
 
Messages: 627
Inscription: Dim Avr 09, 2006 16:53

Message le Jeu Aoû 24, 2006 11:21

il me semble qu'en même que cette rubrique n'est pas indiqué pour ce genre de problèmes.


HawkEye
Modérateur
Modérateur
 
Messages: 15036
Inscription: Lun Fév 23, 2004 12:33

Message le Jeu Aoû 24, 2006 11:24

Très juste.

Le sujet a donc été déplacé dans "Développement d'un site Web" ;)

txikiteo
Nouveau WRInaute
 
Messages: 10
Inscription: Mer Aoû 23, 2006 14:02

Message le Jeu Aoû 24, 2006 11:26

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


obi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 238
Inscription: Mer Juil 26, 2006 10:53

Message le Jeu Aoû 24, 2006 13:12

txikiteo a écrit: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.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités