par
sadeq » 01 sept. 2006, 09:35
Pour la structure du tableau suivante :
Origine | Destination | Cout
--------------------------------------------
0 | "blabla" | "..." | 243
1 |
2 |
...
Je propose la programmation suivante (en guise de cours):
<?php
//Déclarer la structure du tableau (non obligatoire)
$tableau = array ( array ("Origine"=>"", "Destination"=>"", "Cout"=>0) ); //c'est un array de array (tableau dans un autre) ou tableau à deux dimensions
//remplir la première ligne
$tableau[0]["Origine"] = "blabla";
$tableau[0]["Destination"] = "...";
$tableau[0]["Cout"] = 243;
//remplir la deuxième ligne
$tableau[1]["Origine"] = "blabla";
$tableau[1]["Destination"] = "...";
$tableau[1]["Cout"] = 1;
//Et ainsi de suite...
//Dans le cas où on souhaite ajouter une nouvelle ligne,
//on n'a pas besoin de calculer le nouveau rang php le fait automatiquement:
$tableau[]= array("Origine" => "blabla", "Destination" => "...", "Cout" => 2);
//Remarquez les [] vides désignent qu'il s'agit d'un nouvel index autoincrémenté
//Si l'on souhaite supprimer une ligne donnée
$index_à_supprimer = 1; //donner l'index à supprimer
unset ($tableau[$index_à_supprimer]);
//mais puisque l'index est numérique et que c'est une suite en plus
//il ne faut pas oublier de recalculer la nouvelle suite
$tableau = array_values($tableau);
//Si l'on souhaite afficher ce tableau (je préfére utiliser la boucle foreach)
if ( $tableau && is_array($tableau) ) { //ce test s'assure qu'il s'agit bien d'un tableau existant
//boucle pour parcourir le tableau
foreach ($tableau as $num_ligne=>$contenu){
//ici, les variables déclarées après le mot "as" servent à :
// $num_ligne : reçoit la valeur de l'index du tableau à chaque boucle
//$contenu : reçoit la deuxième dimension du tableau composée
// des index nommés et leur contenu
//Exemple: le contenu peut être $contenu["Origine"] = "blabla" quand $num_ligne est à 0
//Maintenant pour traiter le contenu récupèré par foreach à chaque bouclage : on affiche par exemple
echo "<p>Ligne n° : ".$num_ligne;
echo "<p>Origine : ".$contenu["Origine"];
echo "<p>Destination : ".$contenu["Destination"];
echo "<p>Cout : ".$contenu["Cout"];
}//fin de la boucle foreach
}//fin de if
?>
Voilà

Pour la structure du tableau suivante :
Origine | Destination | Cout
--------------------------------------------
0 | "blabla" | "..." | 243
1 |
2 |
...
Je propose la programmation suivante (en guise de cours):
[php]<?php
//Déclarer la structure du tableau (non obligatoire)
$tableau = array ( array ("Origine"=>"", "Destination"=>"", "Cout"=>0) ); //c'est un array de array (tableau dans un autre) ou tableau à deux dimensions
//remplir la première ligne
$tableau[0]["Origine"] = "blabla";
$tableau[0]["Destination"] = "...";
$tableau[0]["Cout"] = 243;
//remplir la deuxième ligne
$tableau[1]["Origine"] = "blabla";
$tableau[1]["Destination"] = "...";
$tableau[1]["Cout"] = 1;
//Et ainsi de suite...
//Dans le cas où on souhaite ajouter une nouvelle ligne,
//on n'a pas besoin de calculer le nouveau rang php le fait automatiquement:
$tableau[]= array("Origine" => "blabla", "Destination" => "...", "Cout" => 2);
//Remarquez les [] vides désignent qu'il s'agit d'un nouvel index autoincrémenté
//Si l'on souhaite supprimer une ligne donnée
$index_à_supprimer = 1; //donner l'index à supprimer
unset ($tableau[$index_à_supprimer]);
//mais puisque l'index est numérique et que c'est une suite en plus
//il ne faut pas oublier de recalculer la nouvelle suite
$tableau = array_values($tableau);
//Si l'on souhaite afficher ce tableau (je préfére utiliser la boucle foreach)
if ( $tableau && is_array($tableau) ) { //ce test s'assure qu'il s'agit bien d'un tableau existant
//boucle pour parcourir le tableau
foreach ($tableau as $num_ligne=>$contenu){
//ici, les variables déclarées après le mot "as" servent à :
// $num_ligne : reçoit la valeur de l'index du tableau à chaque boucle
//$contenu : reçoit la deuxième dimension du tableau composée
// des index nommés et leur contenu
//Exemple: le contenu peut être $contenu["Origine"] = "blabla" quand $num_ligne est à 0
//Maintenant pour traiter le contenu récupèré par foreach à chaque bouclage : on affiche par exemple
echo "<p>Ligne n° : ".$num_ligne;
echo "<p>Origine : ".$contenu["Origine"];
echo "<p>Destination : ".$contenu["Destination"];
echo "<p>Cout : ".$contenu["Cout"];
}//fin de la boucle foreach
}//fin de if
?>[/php]
Voilà :wink: