Index: phpdoc/fr/functions/array.xml diff -u phpdoc/fr/functions/array.xml:1.27 phpdoc/fr/functions/array.xml:1.28 --- phpdoc/fr/functions/array.xml:1.27 Mon Mar 19 09:01:14 2001 +++ phpdoc/fr/functions/array.xml Tue Mar 27 06:11:28 2001 @@ -217,11 +217,67 @@ + + + array_filter + Filtre les éléments d'un tableau + + + Description + + + array array_filter + array input + mixed + callback + + + + + array_filter retourne un tableau + contenant les éléments du tableau input, + filtré grâce à la fonction callback. + Si input est un tableau associatif, + les clés sont préservées. + + + + Exemple avec <function>array_filter</function> + +<?php +function pair($var) { + return ($var % 2 == 1); +} +function impair($var) { + return ($var % 2 == 0); +} +$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); +$array2 = array(6, 7, 8, 9, 10, 11, 12); +$tableau_pair = array_filter($array1, "pair"); +$tableau_impair = array_filter($array2, "impair"); +?> + + + + + Cet exemple montre comment extraire les nombres pairs + dans $tableau_impair : ce dernier contient + array ("a"=>1, "c"=>3, "e"=>5);, + et les nombres impairs dans $tableau_pair : + ce dernier contient array (6, 8, 10, 12);, + + + Voir aussi + array_map et + array_reduce. + + + array_flip - Remplace les clés par les valeurs, et les valeurs par les clés + Remplace les clés par les valeurs, et les valeurs par les clés @@ -370,10 +426,183 @@ - Voir aussi array_values. + Voir aussi + array_values. + + + array_map + Applique sur fonction sur des tableaux + + + Description + + + array array_map + mixed callback + array arr1 + array + arr2... + + + + + array_map retourne un tableau + contenant tous les éléments du tableau arr1, + après leur avoir appliqué la fonction callback. + Le nombre de paramètre de la fonction callback + doit être égal au nombre de tableaux passés dans la fonction + array_map. + + + + Exemple avec <function>array_map</function> + +<?php +function cube($n) { + return $n*$n*$n; +} +$a = array(1, 2, 3, 4, 5); +$b = array_map("cube", $a); +?> + + + + + Avec cet exemple, la variable $b contiendra + array (1, 8, 27, 64, 125);. + + + + <function>array_filter</function> - utilisation de plusieurs tableaux + +<?php +function parle_espagnol($n, $m) { + return "Le nombre $n se dit $m en espagnol"; +} +function map_espagnol($n, $m) { + return array($n => $m); +} +$a = array(1, 2, 3, 4, 5); +$b = array("uno", "dos", "tres", "cuatro", "cinco"); +$c = array_map("parle_espagnol", $a, $b); +print_r($c); +// Affichera : +// Array +// ( +// [0] => Le nombre 1 se dit uno en espagnol +// [1] => Le nombre 2 se dit dos en espagnol +// [2] => Le nombre 3 se dit tres en espagnol +// [3] => Le nombre 4 se dit cuatro en espagnol +// [4] => Le nombre 5 se dit cinco en espagnol +// ) +$d = array_map("map_espagnol", $a , $b); +print_r($d); +// Affichera : +// Array +// ( +// [0] => Array +// ( +// [1] => uno +// ) +// +// [1] => Array +// ( +// [2] => dos +// ) +// +// [2] => Array +// ( +// [3] => tres +// ) +// +// [3] => Array +// ( +// [4] => cuatro +// ) +// +// [4] => Array +// ( +// [5] => cinco +// ) +// +// ) +?> + + + + + Généralement, lorsque vous utilisez plusieurs tableaux, ils doivent + être de même longueur, car la fonction de callback est appliqué à + un élément de chaque tableau. Si les tableaux sont de taille inégale, + les plus courts seront remplis d'éléments vides. + + + Une utilisation interessante de cette fonction est de construire des + tableaux de tableaux, grâce à la fonction de callback null. + + + + <function>array_map</function> - création d'un tableau de tableaux + +<?php +$a = array(1, 2, 3, 4, 5); +$b = array("un", "deux", "trois", "quatre", "cinq"); +$c = array("uno", "dos", "tres", "cuatro", "cinco"); +$d = array_map(null, $a, $b, $c); +print_r($d); +// affichera : +// Array +// ( +// [0] => Array +// ( +// [0] => 1 +// [1] => un +// [2] => uno +// ) +// +// [1] => Array +// ( +// [0] => 2 +// [1] => deux +// [2] => dos +// ) +// +// [2] => Array +// ( +// [0] => 3 +// [1] => trois +// [2] => tres +// ) +// +// [3] => Array +// ( +// [0] => 4 +// [1] => quatre +// [2] => cuatro +// ) +// +// [4] => Array +// ( +// [0] => 5 +// [1] => cinq +// [2] => cinco +// ) +// +// ) +?gt; + + + + + Voir aussi + array_filter et + array_reduce. + + + array_merge @@ -806,7 +1035,69 @@ - + + + array_reduce + + Réduit itérativement un tableau + + + + Description + + + mixed array_reduce + array input + mixed callback + int + initial + + + + + array_reduce applique itérativement + la fonction callback aux éléments du + tableau input, de manière à réduire le + tableau à une valeur simple. Si l'argument optionnel + intial est disponible, il sera utilisé pour + initialiser le processus, ou bien comme valeur finale si le + tableau est vide. + + + + Exemple avec <function>array_reduce</function> + +<?php +function rsum($v, $w) { + $v += $w; + return $v; +} +function rmul($v, $w) { + $v *= $w; + return $v; +} +$a = array(1, 2, 3, 4, 5); +$x = array(); +$b = array_reduce($a, "rsum"); +$c = array_reduce($a, "rmul", 10); +$d = array_reduce($x, "rsum", 1); +?> + + + + + Dans cet exemple, $b contiendra 15, + $c contiendra 1200 (= 1*2*3*4*5*10), + et $d contiendra 1. + + + Voir aussi + array_filter et + array_map. + + + + array_rand