dams Tue Mar 27 06:11:30 2001 EDT Modified files: /phpdoc/fr/functions array.xml Log: Added array_reduce, map and filter.
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 @@ </para> </refsect1> </refentry> + <refentry id="function.array-filter"> + <refnamediv> + <refname>array_filter</refname> + <refpurpose>Filtre les éléments d'un tableau</refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_filter</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>mixed + <parameter><optional>callback</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>array_filter</function> retourne un tableau + contenant les éléments du tableau <parameter>input</parameter>, + filtré grâce à la fonction <parameter>callback</parameter>. + Si <parameter>input</parameter> est un tableau associatif, + les clés sont préservées. + </para> + <para> + <example> + <title>Exemple avec <function>array_filter</function></title> + <programlisting role="php"> +<?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"); +?> + </programlisting> + </example> + </para> + <para> + Cet exemple montre comment extraire les nombres pairs + dans <varname>$tableau_impair</varname> : ce dernier contient + <literal>array ("a"=>1, "c"=>3, "e"=>5);</literal>, + et les nombres impairs dans <varname>$tableau_pair</varname> : + ce dernier contient <literal>array (6, 8, 10, 12);</literal>, + </para> + <para> + Voir aussi + <function>array_map</function> et + <function>array_reduce</function>. + </para> + </refsect1> + </refentry> <refentry id="function.array-flip"> <refnamediv> <refname>array_flip</refname> <refpurpose> - 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 </refpurpose> </refnamediv> <refsect1> @@ -370,10 +426,183 @@ </para> </note> <para> - Voir aussi <function>array_values</function>. + Voir aussi + <function>array_values</function>. </para> </refsect1> </refentry> + <refentry id="function.array-map"> + <refnamediv> + <refname>array_map</refname> + <refpurpose>Applique sur fonction sur des tableaux</refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>array_map</function></funcdef> + <paramdef>mixed <parameter>callback</parameter></paramdef> + <paramdef>array <parameter>arr1</parameter></paramdef> + <paramdef>array + <parameter><optional>arr2...</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>array_map</function> retourne un tableau + contenant tous les éléments du tableau <parameter>arr1</parameter>, + après leur avoir appliqué la fonction +<parameter>callback</parameter>. + Le nombre de paramètre de la fonction <parameter>callback</parameter> + doit être égal au nombre de tableaux passés dans la fonction + <function>array_map</function>. + </para> + <para> + <example> + <title>Exemple avec <function>array_map</function></title> + <programlisting role="php"> +<?php +function cube($n) { + return $n*$n*$n; +} +$a = array(1, 2, 3, 4, 5); +$b = array_map("cube", $a); +?> + </programlisting> + </example> + </para> + <para> + Avec cet exemple, la variable <varname>$b</varname> contiendra + <literal>array (1, 8, 27, 64, 125);</literal>. + </para> + <para> + <example> + <title><function>array_filter</function> - utilisation de plusieurs +tableaux</title> + <programlisting role="php"> +<?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 +// ) +// +// ) +?> + </programlisting> + </example> + </para> + <para> + 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. + </para> + <para> + Une utilisation interessante de cette fonction est de construire des + tableaux de tableaux, grâce à la fonction de callback +<literal>null</literal>. + </para> + <para> + <example> + <title><function>array_map</function> - création d'un tableau de +tableaux</title> + <programlisting role="php"> +<?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; + </programlisting> + </example> + </para> + <para> + Voir aussi + <function>array_filter</function> et + <function>array_reduce</function>. + </para> + </refsect1> + </refentry> <refentry id="function.array-merge"> <refnamediv> <refname>array_merge</refname> @@ -806,7 +1035,69 @@ </para> </refsect1> </refentry> - <refentry id="function.array-rand"> + <refentry id="function.array-reduce"> + <refnamediv> + <refname>array_reduce</refname> + <refpurpose> + Réduit itérativement un tableau + </refpurpose> + </refnamediv> + <refsect1> + <title>Description</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>array_reduce</function></funcdef> + <paramdef>array <parameter>input</parameter></paramdef> + <paramdef>mixed <parameter>callback</parameter></paramdef> + <paramdef>int + <parameter><optional>initial</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>array_reduce</function> applique itérativement + la fonction <parameter>callback</parameter> aux éléments du + tableau <parameter>input</parameter>, de manière à réduire +le + tableau à une valeur simple. Si l'argument optionnel + <parameter>intial</parameter> est disponible, il sera utilisé pour + initialiser le processus, ou bien comme valeur finale si le + tableau est vide. + </para> + <para> + <example> + <title>Exemple avec <function>array_reduce</function></title> + <programlisting role="php"> +<?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); +?> + </programlisting> + </example> + </para> + <para> + Dans cet exemple, <varname>$b</varname> contiendra <literal>15</literal>, + <varname>$c</varname> contiendra <literal>1200</literal> (= 1*2*3*4*5*10), + et <varname>$d</varname> contiendra <literal>1</literal>. + </para> + <para> + Voir aussi + <function>array_filter</function> et + <function>array_map</function>. + </para> + </refsect1> + </refentry> + <refentry id="function.array-rand"> <refnamediv> <refname>array_rand</refname> <refpurpose>