An Interest In:
Web News this Week
- April 27, 2024
- April 26, 2024
- April 25, 2024
- April 24, 2024
- April 23, 2024
- April 22, 2024
- April 21, 2024
Apprendre le PHP : Manipulation des tableaux
Aujourd'hui, vous apprendrez la manipulation des tableaux en PHP.
Ce cours acclr PHP est gratuit et sera publi ici sur dev.to. Je publierai un nouvel article tous les deux jours environ. Pour ne rien manquer, vous pouvez me suivre sur twitter : Follow @EricLeCodeur
Tout d'abord, voici un scnario trs courant dans le dveloppement Web qui vous aidera comprendre pourquoi nous avons besoin d'Array.
Dans l'exemple suivant, nous devons afficher une liste de produits et leurs prix.
$product1 = "iPad";$product2 = "iPhone";$product3 = "iWatch";$price1 = 599;$price2 = 899;$price3 = 699;echo $product1 . ' : ' . $price1 . '<br>'echo $product2 . ' : ' . $price2 . '<br>'echo $product3 . ' : ' . $price3 . '<br>'
Comme vous pouvez l'imaginer, ce code est loin d'tre optimal. Imaginez si nous avions 100 produits ou mme 10 000 produits.
Il existe un moyen de faire l'exemple prcdent de manire beaucoup plus efficace... Les tableaux.
Les tableaux en PHP sont des listes de valeurs. Les valeurs d'un tableau peuvent tre de types diffrents.
Pour dfinir un tableau, nous utilisons des crochets [ ]
$products = [];
La variable $products est un tableau vide
Il est possible de crer un tableau avec du contenu
$products = ['iPad', 'iPhone', 'iWatch'];
Ce tableau contient trois chanes: iPad, iPhone, iWatch
Chaque lment du tableau est spar par une virgule.
Il est possible d'avoir des tableaux avec diffrents types de variables
$array = ['First entry', 100, true]
Il est mme possible de crer un tableau dans un tableau
$array = ['First entry', 100, ['iPad', 'iPhone'], false]
Pour accder un lment
echo $array[0];// First entry
Les lments d'un tableau sont indexs partir de 0. Ainsi, le premier lment est la position 0, le second la position 1, et ainsi de suite.
$array = ['First entry', 100, ['iPad', 'iPhone'], false] 0 1 2 3
Pour accder un tableau dans un tableau, vous utilisez la syntaxe suivante
echo $array[2][1];// iPhone
Ici, nous affichons l'lment 2, c'est--dire ['iPad', 'iPhone'] alors que le sous lment 1 est l'iPhone
Si vous tentez d'accder un lment inexistant. PHP renverra un avertissement et la valeur null.
$array = ['First entry', 100, true]echo $array[3];// null // Warning: Undefined array key 3
Nombres d'items dans un tableau
Pour dterminer le nombre d'lments dans un tableau, vous pouvez utiliser la fonction count()
$array = ['First entry', 100, true]echo count($array);// 3
Manipulation de tableaux
Ajouter un lment la fin du tableau
$array[] = 'Last';// ['First entry', 100, ['iPad', 'iPhone'], false, 'Last']
Supprimer un lment du tableau
unset($array[0]);// [100, ['iPad', 'iPhone'], false, 'Last']
Convertir un tableau en chane avec la fonction implode
$array = ['One', 'Two', 'Three'];echo implode(', ', $array);// "One, Two, Three"
Le premier paramtre est le sparateur.
Transformer une chane en tableau avec la fonction clater
$text = 'Mike, Shawn, John';echo explode(',', $text); // ['Mike', 'Shawn', 'John'];
Le premier paramtre est le sparateur.
Itrer travers tous les lments d'un tableau
La fonction foreach excute le code pour chaque lment du tableau.
$names = ['Mike', 'Shawn', 'John']foreach($names as $name) { echo 'Hello ' . $name;}
Le premier paramtre est le nom du tableau parcourir, le deuxime paramtre reprsente la rfrence l'lment courant.
Tableaux associatifs
Jusqu' prsent, nous avons appris comment fonctionnent les tableaux. Ils ont une cl numrique commenant 0.
Il est possible de crer des tableaux avec une cl personnalise. C'est ce que PHP appelle des tableaux associatifs.
$person = ['age' => 45, 'genre' => 'men'];
Ici, l'ge et le genre sont les cls. 45 et 'men' sont les valeurs associes ces cls. Notez que certains langages de programmation appellent ce type de tableau un dictionnaire.
Les tableaux associatifs sont trs pratiques et vous devez bien les comprendre car vous les utiliserez trs souvent. Ils sont parfaits pour stocker des informations.
$product = ['id' => 100, 'name' => 'iPad', 'price' => 699];
L'accs une valeur de tableau se fait avec la cl
echo "Product :" . $product['name'];
L'ajout d'une cl/valeur au tableau est possible en spcifiant une nouvelle cl
$product['qty'] = 5;
Il est possible de vrifier si une cl existe
$product = ['id' => 100, 'name' => 'iPad', 'price' => 699];echo array_key_exists('id', $product);// true
Boucle dans un tableau associatif avec des valeurs et des cls
foreach($names as $key => $value) { echo $key . ' : ' . $value;}
Concatnation: Joindre deux tableaux
$names1 = ['Mike', 'Paul', 'Tom'];$names2 = ['John', 'Sam'];$allNames = array_merge($names1, $names2)// ['Mike', 'Paul', 'Tom', 'John', 'Sam'];
Concatnation avec l'oprateur de propagation (...)
$names1 = ['Mike', 'Paul', 'Tom'];$names2 = ['John', 'Sam'];$allNames = [...$names1, ...$names2];// ['Mike', 'Paul', 'Tom', 'John', 'Sam'];
Ici, l'oprateur de propagation avant le nom du tableau (...$names) dconstruit le tableau.
Un tableau de tableaux associatifs
Un modle que vous utiliserez souvent est un tableau contenant des tableaux associatifs.
$items = [ ['id' => '100', 'name' => 'product 1'], ['id' => '200', 'name' => 'product 2'], ['id' => '300', 'name' => 'product 3'], ['id' => '400', 'name' => 'product 4'],];
Ce type de tableau est excellent pour reprsenter les donnes.Il est possible de boucler et d'afficher chaque lment
foreach($items as $item) { echo $item['name'] . <br>;}
L'instruction 'as' cre une rfrence l'lment de tableau.
Rcupre une partie d'un tableau
Il existe plusieurs fonctions qui permettent de rcuprer une partie d'un tableau.
Rcuprer uniquement les cls ou les valeurs
$person = ['age' => 45, 'genre' => 'men'];// Return an array with only keysecho array_keys($person); // ['age', 'genre']// Return an array with only valuesecho array_values($person) // [45, 'men']
Fonctions avec fonction comme paramtre
Dans cette partie du tutoriel nous allons voir trois fonctions qui permettent la manipulation des tableaux. Ces fonctions sont :
- array_filter()
- array_map()
- array_reduce()
Ces fonctions sont particulires car elle ont chacune une fonction callback comme paramtre. Une fonction callback est une fonction anonyme qui s'excute de la mme faon qu'une fonction classique.
Le concept des fonctions callback peut tre plus difficile comprendre. Donc si vous ne saisissez pas tout du premier coup c'est normale.
array_filter()
Permet la rcupration des lments qui correspondent un critre spcifique
$items = [ ['id' => 100, 'name' => 'product 1'], ['id' => 200, 'name' => 'product 2'], ['id' => 300, 'name' => 'product 3'], ['id' => 400, 'name' => 'product 4'],];$filteredItem = array_filter($items, function ($product) { return $product['id'] > 200;});print_r($filteredItem);// $items = [// ['id' => '300', 'name' => 'product 3'],// ['id' => '400', 'name' => 'product 4'],// ];
La fonction array_filter() est une fonction avec une fonction de rappel en paramtre. Pour chaque lment du tableau, une expression sera value. Si l'expression est vraie, l'lment courant sera inclus dans le tableau rsultant.
Recherche dans un tableau
$items = [ ['id' => '100', 'name' => 'product 1'], ['id' => '200', 'name' => 'product 2'], ['id' => '300', 'name' => 'product 3'], ['id' => '400', 'name' => 'product 4'],];$found_key = array_search('product 3', array_column($items, 'name'));// 2
La fonction array_search() permet de rechercher une cl spcifique selon un critre de recherche. Dans le dernier exemple nous recherchons la cl du 'produit' dans la colonne 'nom'
Crez un nouveau tableau avec la fonction array_map()
$items = [ ['id' => 100, 'name' => 'product 1'], ['id' => 200, 'name' => 'product 2'], ['id' => 300, 'name' => 'product 3'], ['id' => 400, 'name' => 'product 4'],];$mapItems = array_map(function ($product) { return [ 'id' => $product['id'] * 2, 'name' => $product['name'] ];}, $items);print_r($mapItems);//[ ['id' => 200, 'name' => 'product 1'], ['id' => 400, 'name' => 'product 2'], ['id' => 600, 'name' => 'product 3'], ['id' => 800, 'name' => 'product 4'],];
La fonction array_map() renvoie un tableau qui contient ce que chaque lment de rappel renverra.
La fonction array_map() doit avoir deux paramtres : une fonction callback et un tableau. ex. array_map (fonction de rappel, tableaux)
La fonction array_map() boucle sur chaque lment du tableau et construit en mme temps un nouveau tableau. Chaque lment du nouveau tableau est le rsultat (retour) de la fonction callback. Dans le dernier exemple, chaque boucle a renvoy un lment avec l'identifiant * 2 et le nom du produit.
La table d'origine n'est pas modifie, une nouvelle table est cre.
La fonction array_reduce()
Cette fonction prend un tableau et le rduit une seule valeur. Par exemple, a renvoy le rsultat de l'addition de tous les nombres contenus dans un tableau.
$numbers = [2, 4, 6, 100];$sum = array_reduce($numbers, function ($num, $total) { return $total + $num;}, 0);print_r($sum);// 112
La fonction array_reduce() prend deux paramtres : une rfrence l'lment rel et une variable totale. A chaque itration, la fonction callback retourne le rsultat dans la variable total.
Conclusion
C'est tout pour aujourd'hui, je publierai un nouvel article tous les deux jours environ. Pour tre sr de ne rien rater vous pouvez me suivre sur twitter : Suivre @EricLeCodeur
Original Link: https://dev.to/ericlecodeur/apprendre-le-php-manipulation-des-tableaux-41f4
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To