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>