Hébergement du site en PHP et Mysql par WDMédia-hébergement
Vous aussi adpotez les éléPHPants de Vincent Pontier !  
CONCOURS
 
 
PLUS DE PHP
 
 
PLUS DE JAVASCRIPT
 
COMMENT CA MARCHE
 
 
EXPLIQUE-MOI
 
 
NEWS LETTER
 

 
PARTENAIRES
 
Découvrez scriptsphp.org
Découvrez phpteam.net
Tout sur les expressions régulières
IE sucks :-)
 
DESIGN DU SITE
 
Array
Tuto original de FABRICE POTEC, revu par LionZion, Molokai et Raf en août 2004

Qu'est-ce qu'un array ?
La fonction array() permet de créer des tableaux dynamiques qui seront exploités par vos scripts PHP, à la différence d'une table mySQL, l'array est temporaire et ne reste généré que le temps du déroulement de votre script. Attention, les tableaux dynamiques ou arrays n'ont rien à voir avec les tableaux HTML, qui servent à la mise en forme de données.
Pourquoi utiliser les Arrays et comment les créer ?
C'est souvent un moyen très pratique de stocker de nombreuses informations venant de d'une base de données ou tout autres sources. Les tableaux sont aussi une méthode pour pouvoir stocker des informations souvent utlisées (balises HTML par exemple), et les appeller plus facilement ensuite dans le code. 
Pour comprendre le fonctionnement du tableau voici un exemple simple qui va nous premettre de stocker des balises HTML souvent utilisées (TABLE,TR,TD,ALIGN...) :
Code PHP
// ci-dessous nous stockons les balises qui servent à créer les tableaux HTML
$table = array(
'D_TABLE' => '<table border="0" cellpadding="0" cellspacing="2" width="90%" bgcolor="yellow">\n',
'D_ROWS'  => '<tr><td>',
'F_ROWS'  => '</tr></td>\n',
'F_TABLE' => '</table>\n'
);

// cette fois nous stockons les balises d'alignement HTML
$align = array(
'D_CENTER' => '<div align=center>\n',
'F_CENTER' => '</div>\n',
'D_RIGHT'  => '<div align=right>\n',
'F_RIGHT'  => '</div>\n'
);

// enfin nous utilisons les valeurs des tableaux (Array) pour créer nos tableaux HTML
echo $align['D_CENTER'];
echo 
$table['D_TABLE'];
echo 
$table['D_ROWS'];

echo 
'Le texte dans la première cellule ...';

echo 
$table['F_ROWS'];
echo 
$table['D_ROWS'];

echo 
'Le texte dans la deuxième cellule ...';

echo 
$table['F_ROWS'];
echo 
$table['F_TABLE'];
echo 
$align['F_CENTER'];
?>
Un avantage énorme des tableaux en PHP est vraiment la possibilité de stocker des informations une fois pour toutes et de pouvoir les appeller quand vous le souhaitez sans avoir à retaper les lignes de codes entières. Au même titres que les fonctions utilisateurs, il est judicieux de placer les tableaux pré-remplis dans un fichier de type : fonctions.inc.php et de l'appeller dans toutes les pages avec un require() ou include(). Bien-sûr ce n'est pas le cas d'un tableau que vous alimentez dynamiquement avec des informations spécifiques au script en cours.
Voici un autre exemple simple qui consciste à alimenter un tableau avec des données mais sans spécifier d'identifiant :
Code PHP
// cette fois nous stockons des valeurs sans les identifier
$prenom = array('didier','pierre','julien','xavier'); 

// Nous les affichons
echo $prenom[0].' - '.$prenom[1].' - '.$prenom[2].' - '.$prenom[3].'<br>';

/*
ce qui affiche :
didier - pierre - julien - xavier

*/

// Le même affichage avec une boucle for (cf exo 6)
// la fonction sizeof() renvoie le nombre d'éléments d'un tableau, ici 4

for($i=0;$i<sizeof($prenom);$i++) // tant que $i est inferieur au nombre d'éléments du tableau...
    
{
    echo 
$prenom[$i].'<br>'// on affiche l'élément du tableau d'indice $i
    
}
/*
ce qui affiche :
    
didier
pierre
julien
xavier

*/
?>
Si aucun identifiant n'est spécifié, c'est le chifre "0" par défaut qui servira de base. A contrario, vous pouvez spécifier l'identifiant de base, qui peut être "1" par exemple et non pas "0", dans ce cas les valeurs suivantes auront un identifiant égale à l'identifiant précédent + 1  (comme un auto_increment dans mySQL), voici ce que cela donne:
Code PHP
$animaux = array(=> 'chien','chat','vache','cochon'); 

// L'affichage commence cette fois à partir de : [1]
echo $animaux[1].' - '.$animaux[2].' - '.$animaux[3].' - '.$animaux[4];
?>
Parcourir un tableau avec la boucle foreach
Vous avez vu une première methode pour parcourir un tableau : il s'agit d'utiliser une boucle for. Mais seulement cela ne marche que pour un tableau dont les clés sont numériques ($animaux[1] par exemple). Maintenant comment faire pour parcourir un tableau ayant des expressions litterales comme clés ? Pour cela il suffit d'utiliser la boucle foreach. Voici un exemple qui illustre cette boucle :
Code PHP
$individu = array(
'Nom'=>'Dupond',
'Prenom'=>'Martin',
'Age'=>18,
'Nationalité'=>'Francais',
);

// pour parcourir ce tableau, utilisons la boucle foreach
foreach($individu as $cle=>$valeur)
    {
    echo 
$cle.' : '.$valeur.'<br>';
    }
    
/*
Cet exemple affiche :
Nom : Dupond
Prenom : Martin
Age : 18
Nationalité : Francais
*/
?> 
Les tableaux multi-dimensionnels
Dans l'exemple ci-dessus, à chaque tour, la boucle accède à l'élément suivant du tableau et met dans $cle le nom de la cle de l'élément et dans $valeur la valeur de l'élément. Evidemment vous pouvez choisir d'autre noms de variable. Dans notre exemple, la boucle aura fait quatre tours.
Nous allons maintenant étudier les tableaux multi-dimensionnels. En effet vous risquez de rencontrer parfois des tableaux qui auront cette allure la :
$constructeur['Renault']['Citadine'] = 'Clio'; par exemple ou bien
$constrcteur['Citroen']['Monospace'] = 'Picasso'; dans le même style...
Avant de passer à un exemple précis, voici un petit rappel sur le type d'une variable:

$fleur = 'rose'; On dit que $fleur est de type string (chaîne en anglais) car 'rose' est une chaîne de caractère
$loisir[1] = 'Football'; On dit alors que $loisir est de type array, puisque c'est un tableau.
Mais $loisir[1] est de type string car 'Football' est une chaîne de caractère, vous comprenez la subtilité ? (essaiez de considérer dans votre tête $loisir[1] comme une seule variable, un peu comme si s'était $loisir1 ... ).
Si vous avez compris ça, alors vous n'aurez pas de mal à comprendre les tableaux à plusieurs dimensions. En effet, il suffit de comprendre que chaque élément du tableau peut lui même être un tableau, et ce jusqu'à l'infini... Reprenons notre premier exemple:
$constructeur est un tableau
$constructeur['Renault'] est aussi un tableau puisque il des clés, dont la clé 'Citadine'
mais $constructeur['Renault']['Citadine'] est de type string car 'Clio' est une chaîne de caractère.
Petite astuce: pour connaitre le type d'une variable, utlisez la fonction gettype()
Par exemple, echo gettype($constructeur['Citroen']); affichera Array
Sachez aussi qu'il existe d'autres types de variable :boolean (true ou false),integer (nombre entier : 1,2 ,..) ou encore object (cf cours Classes et Objets),
Maintenant vous vous en doutez, il va se poser un problème lorsque que vous voudrez parcourir un tableau multi-dimensionnel. En effet si vous savez que le tableau n'a qu'un seul niveau ($tab['maison'] par exemple), alors vous allez utiliser une boucle foreach. Et puis si le tableau a deux niveaux ($tab['maison']['piece'] par exemple) alors vous allez devoir à nouveau faire deux boucles foreach incluses l'une dans l'autre pour parcourir les deux niveaux du tableau. Ce qui pose problème lorsqu'on ne connaît pas le nombre de niveau d'un tableau. pur cela il faut utiliser une fonction dite récursive, c'est à dire une fonction qui va être capable de parcourir tout un tableau quel que soit son nombre de niveaux. Pour rappel, récursif signifie ce qui peut être répété un nombre infini de fois. Voici donc un exemple de fonction récursive pour parcourir un tableau, utilisant le tableau que l'on a vu précédemment. Pour plus de détails sur les fonctions en php, je vous invite à lire le tutorial sur les fonctions dans la partie "+ de php".
Code PHP
// $constructeur contient la gamme Renault et Citroen
// on se contentera de deux constructeurs : ça suffira pour l'exemple :)
$constructeur = array();

$constructeur['Renault']['Citadines'] = array('Twingo','Clio');
$constructeur['Renault']['Berlines'] = array('Megane','Laguna');
$constructeur['Renault']['Monospaces'] = array('Scenic','Espace');

$constructeur['Citroen']['Citadines'] = 'Saxo';
$constructeur['Citroen']['Berlines'] = array('Xsara','Xantia');
$constructeur['Citroen']['Monospaces'] = array('Picasso','Evasion');

function 
afficher_tableau($tableau
    {
    
// on fait une boucle qui lit les éléments du tableau
    
foreach ($tableau as $cle=>$valeur
        {
        
// si l'un des éléments est lui même un tableau
        // alors on applique la fonction à ce tableau
        
if(is_array($valeur)) 
            {
            
// on affiche le nom de la clé et
            // le début d'une liste pour
            //  décaler le contenu vers la droite
            
echo $cle.' : <ul>'
            
            
// ici se réalise la récursivité
            // c'est à dire qu'on applique la fonction
            // à l'élément en cours car c'est lui aussi un tableau
            
afficher_tableau($valeur); 
            
            
// on ferme la liste
            
echo '</ul>'
            }
        
        
// si ce n'est pas un tableau
        // alors on affiche le contenu de l'élément
        
else
            {
            echo 
$cle.' = '.$valeur.' <br>';  
            }
        } 
    } 
    

afficher_tableau($constructeur);

/*
ce qui va afficher :

Renault :
    Citadines :
        0 = Twingo
        1 = Clio

    Berlines :
        0 = Megane
        1 = Laguna

    Monospaces :
        0 = Scenic
        1 = Espace

Citroen :
    Citadines = Saxo
    Berlines :
        0 = Xsara
        1 = Xantia

    Monospaces :
        0 = Picasso
        1 = Evasion
*/
?>


Ajouter une réponse
Nom
Email
Titre

Mise en forme : gras = [b]...[/b], italic = [i]...[/i], souligné = [u]...[/u], citation = [quote]...[/quote], lien = [url]liens_externe[/url] ou [url nom=texte]liens_externe[/url], code source : [code]...[/code]

Mémoriser mon nom et mon email : Oui Non
www.phpdebutant.org © 2024 - L'équipe de phpDebutant - Hébergement : WDMédia-hébergement
DEBUTEZ !
 
  0.  Introduction
  1.  Afficher une phrase ou une image
  2.  Afficher la date et l'heure
  3.  PHP dans du code HTML
  4.  La concaténation
  5.  Récupérer les valeurs d'un formulaire
  6.  Les structures de contrôle
  7.  Ecrire et lire dans un fichier texte
  8.  Les fonctions utilisateurs
  9.  Les variables d'environnement
  10.  Quelques fonctions utiles
  11.  SQL/MySQL (Create, Alter & Drop)
  12.  SQL/MySQL (Insert et Select)
  13.  SQL/MySQL (Delete et Update)
  14.  SQL/MySQL (Where)
  15.  Fonctions PHP pour mySQL
  16.  Interroger une table MySQL
  17.  Alimenter une ou plusieurs tables mySQL
  18.  Les pseudos-frames
  19.  Les sessions php4
  20.  Affichage page par page
  21.  Images dynamiques
  22.  Ca marche pas ?
  23.  Variables globales à OFF
  24.  Les variables dynamiques