Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
January 17, 2022 01:45 pm GMT

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

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To