Fonctions dédiés aux tableaux
Manipuler les tableaux PHP avec des fonctions
PHP propose de nombreuses fonctions très puissantes pour manipuler des tableaux.
Comme vous allez le voir, il est très facile de trier un tableau ou de compter ses élements.
Connaitre la taille d'un tableau : count
On entend par taille d'un tableau le nombre d'éléments que contient le tableau. Ceci est d'un intérêt multiple dont le principal est au niveau des compteurs de boucle. Dans la mesure où l'on désire utiliser une boucle pour l'affichage d'un tableau, il est nécessaire de connaitre la taille d'un tableau pour spécifier l'arrêt du compteur.
La fonction PHP count() renvoie la taille du tableau qu'on lui passe en paramètre :
<?php $tab[0]=1; $tab[1]=2; $tab[2]=3; $tab[3]=4; $tab[4]=5; $tab[5]=6; $taille =count($tab); echo 'La taille du tableau est :'.$taille; ?>
Recherche d'un élément dans un tableau : in_array
La fonction in_array() indique si une valeur appartient à un tableau. Cette fonction nous informe de la présence d'un élément dans le tableau en nous renvoyant TRUE s'il l'a trouvé et FALSE dans le cas contraire. Elle a en premier argument l'élément recherché, et en deuxième argument le tableau en question.
<?php $etudiant = array ("Alissa", "Marianne", "Mickael", "Shania", "Odile", "Stefanie"); $recherche = "Marianne"; if(in_array($recherche, $etudiant)) { echo $recherche." a été trouvé dans la liste des étudiants"; } else { echo $recherche." n'est pas dans la liste des étudiants"; } ?>
Si la fonction in_array() permet de vérifier la présence d'un élément dans le tableau, une autre fonction nous permet d'avoir la clé correspondante de l'élément recherché. Il s'agit de la fonction array_search() qui fonctionne de manière similaire à in_array().
La différence est qu'elle retourne la clé correspondante de l'élément qu'elle a trouvé et FALSE si l'élément n'a pas été trouvé.
<?php $etudiant = array ("Alissa", "Marianne", "Mickael", "Shania", "Odile", "Stefanie"); $recherche = "Marianne"; $cle = array_search($recherche, $etudiant); if($cle === FALSE) { echo $recherche." n'est pas dans la liste des étudiants"; } else { echo $recherche." a été trouvé dans la liste des étudiants. Son rang est : ".$cle ; } ?>
Nombre d'occurrences d'un élément et gestion des doublons : array_count_value
Le nombre d'occurrences d'un élément d'un tableau est donné par la fonction array_count_value(). Elle renvoie pour chaque valeur le nombre d'occurrences trouvé dans un tableau associatif. Prenons toujours l'exemple des étudiants, en comptant le nombre de fois où Marianne apparait dans le tableau.
<?php $etudiant = array ("Alissa", "Marianne", "Mickael", "Shania", "Odile", "Stefanie", "Marianne"); $occurence = array_count_values($etudiant); echo "L'étudiant Marianne apparait ". $occurence['Marianne']." fois dans le tableau"; ?>
Nous avons vu que Marianne apparait deux fois dans le tableau. Dans le cas où l'on a besoin de supprimer les doublons, la fonction array_unique () est à notre disposition. Elle retourne un nouveau tableau sans doublons quand on lui passe en paramètre le premier tableau.
<?php $etudiant = array ("Alissa", "Marianne", "Mickael", "Shania", "Odile", "Stefanie", "Marianne"); //tableau avant :avec doublons echo "avec doublons : "; echo "<pre?>"; print_r($etudiant); echo "</pre?>"; //enlever les doublons $etudiant= array_unique($etudiant); echo "sans doublons : "; //tableau après : sans doublons echo "<pre?>"; print_r($etudiant); echo "</pre?>"; ?>
Trier les tableaux avec PHP
Comme nous allons le voir, il est possible de trier un tableau de différente manière. Là encore, la souplesse de PHP va nous simplifier la tache.
Tri d'un tableau par valeur
La manière la plus simple et la plus utilisée pour trier les tableaux est de les trier par valeurs. Si l'on veut avoir par exemple un tableau des étudiants par ordre alphabétique, la fonction sort() permet de faire le tri. L'argument fourni sera le tableau lui-même.
<?php //tri $etudiant = array ("Alissa", "Mickael", "Shania", "Odile", "Stefanie", "Marianne"); echo "avant tri : "; echo "<pre>"; print_r($etudiant); echo "</pre>"; //trier le tableau sort($etudiant); //après tri echo "après tri : "; echo "<pre>"; print_r($etudiant); echo "</pre>"; ?>
Remarques sur les tris
Quelle est la différence entre :
1
2
3
4
11
12
13
... et ...
1
11
12
13
2
3
4
... ?
C'est ce que nous allons voir ci-dessous.
Les clés d'un tableau : SORT_NUMERIC, SORT_STRING
Pour forcer une comparaison numérique, il faut fournir SORT_NUMERIC en second paramètre de la fonction sort(). Il en est de même pour la comparaison textuelle : SORT_STRING.
Il est aussi possible de faire des tris en ordre inverse, c'est-à-dire un tri décroissant. Cela est possible grâce à la fonction rsort().
Fonctions de tri : ksort, krsort, natsort et usort
Il existe d'autre fonctions nous fournissent une variété très complète de façons de trier un tableau :
- tri par clé : ksort() et krsort
- tri naturel : natsort()
- tri avec une fonction utilisateur : usort()
Je vous laisse le soin de les découvrir et de les employer selon vos besoins.