Semaine 2 - Jour 3 : Méthodes et fonctions avancées des tableaux

Fonctions avancées pour manipuler les tableaux

PHP offre une bibliothèque riche de fonctions pour manipuler les tableaux : trier, filtrer, transformer, fusionner... Ces fonctions sont essentielles pour traiter efficacement des données complexes.

Nous allons découvrir les fonctions les plus utiles : sort/asort/ksort pour le tri, array_filter/array_map pour la transformation, array_merge pour la fusion, et bien d'autres.

1. Tri de tableaux

sort/rsort : Trier les valeurs en ordre croissant/décroissant

<?php
$nombres = [5, 2, 8, 1, 9];
sort($nombres); // [1, 2, 5, 8, 9]
rsort($nombres); // [9, 8, 5, 2, 1]

// asort : Tri en conservant les clés
$notes = ["Jean" => 15, "Marie" => 18, "Paul" => 12];
asort($notes);
// ["Paul" => 12, "Jean" => 15, "Marie" => 18]

// ksort : Tri par clés
ksort($notes);
// ["Jean" => 15, "Marie" => 18, "Paul" => 12]
?>
Note : Les fonctions de tri modifient le tableau original, elles ne retournent pas un nouveau tableau.

2. Filtrage et transformation

array_filter : Filtrer les éléments selon une condition

<?php
// Filtrer les nombres pairs
$nombres = [1, 2, 3, 4, 5, 6];
$pairs = array_filter($nombres, function($n) {
    return $n % 2 == 0;
});
// $pairs = [1 => 2, 3 => 4, 5 => 6]

// array_map : Transformer chaque élément
$doubles = array_map(function($n) {
    return $n * 2;
}, $nombres);
// [2, 4, 6, 8, 10, 12]
?>
Astuce : array_filter et array_map ne modifient pas le tableau original, ils retournent un nouveau tableau.

3. Fusion et combinaison

array_merge : Fusionner plusieurs tableaux

<?php
$fruits1 = ["Pomme", "Banane"];
$fruits2 = ["Orange", "Kiwi"];
$tous = array_merge($fruits1, $fruits2);
// ["Pomme", "Banane", "Orange", "Kiwi"]

// array_combine : Créer tableau clé => valeur
$cles = ["nom", "prenom", "age"];
$valeurs = ["Dupont", "Jean", 30];
$personne = array_combine($cles, $valeurs);
// ["nom" => "Dupont", "prenom" => "Jean", "age" => 30]
?>

4. Fonctions mathématiques & Exemple pratique

array_sum, max, min : Calculs sur les tableaux

<?php
$notes = [12, 15, 18, 14, 16];

$somme = array_sum($notes); // 75
$moyenne = $somme / count($notes); // 15
$max = max($notes); // 18
$min = min($notes); // 12

// Exemple : Filtrer notes >= 10
$etudiants = [
    ["nom" => "Martin", "note" => 15],
    ["nom" => "Durand", "note" => 8],
    ["nom" => "Petit", "note" => 12]
];

$admis = array_filter($etudiants, function($e) {
    return $e["note"] >= 10;
});
// 2 étudiants admis
?>
Résultat : Moyenne = 15, Max = 18, Min = 12, Admis = 2
Froggiesplaining :


Objectifs de ce cours :
✅ Maîtriser les fonctions de tri (sort, asort, ksort)
✅ Filtrer des données avec array_filter
✅ Transformer des tableaux avec array_map
✅ Fusionner des tableaux avec array_merge
✅ Utiliser les fonctions mathématiques (sum, max, min)

Points clés à retenir :
• sort() modifie le tableau original (pas de return)
• array_filter() et array_map() retournent un nouveau tableau
• asort() conserve les clés, sort() réindexe
• array_merge() fusionne plusieurs tableaux
• array_sum(), max(), min() pour les calculs
• Les fonctions avec callback permettent des transformations puissantes

Exercice pratique :
1. Créez un tableau de 10 nombres aléatoires
2. Triez-les avec sort() et rsort()
3. Filtrez les nombres > 5 avec array_filter()
4. Doublez chaque nombre avec array_map()
5. Calculez la somme avec array_sum()
6. Trouvez le maximum et le minimum

Froggie explain

GitHub - eCrea