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 &eacute;l&eacute;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 &eacute;l&eacute;ments du tableau <parameter>input</parameter>,
+     filtr&eacute; gr&acirc;ce &agrave; la fonction <parameter>callback</parameter>.
+     Si <parameter>input</parameter> est un tableau associatif,
+     les cl&eacute;s sont pr&eacute;serv&eacute;es.
+    </para>
+    <para>
+     <example>
+      <title>Exemple avec <function>array_filter</function></title>
+      <programlisting role="php">
+&lt;?php
+function pair($var) {
+   return ($var % 2 == 1);
+}
+function impair($var) {
+   return ($var % 2 == 0);
+}
+$array1 = array("a"=&gt;1, "b"=&gt;2, "c"=&gt;3, "d"=&gt;4, "e"=&gt;5);
+$array2 = array(6, 7, 8, 9, 10, 11, 12);
+$tableau_pair = array_filter($array1, "pair");
+$tableau_impair = array_filter($array2, "impair");
+?&gt;
+      </programlisting>
+     </example>
+    </para>
+    <para>
+     Cet exemple montre comment extraire les nombres pairs
+     dans <varname>$tableau_impair</varname> : ce dernier contient
+     <literal>array ("a"=&gt;1, "c"=&gt;3, "e"=&gt;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&eacute;s par les valeurs, et les valeurs par les cl&eacute;s
+      Remplace les cl&eacute;s par les valeurs, et les valeurs par les cl&eacute;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 &eacute;l&eacute;ments du tableau <parameter>arr1</parameter>,
+     apr&egrave;s leur avoir appliqu&eacute; la fonction 
+<parameter>callback</parameter>.
+     Le nombre de param&egrave;tre de la fonction <parameter>callback</parameter>
+     doit &ecirc;tre &eacute;gal au nombre de tableaux pass&eacute;s dans la fonction
+     <function>array_map</function>.
+    </para>
+    <para>
+     <example>
+      <title>Exemple avec <function>array_map</function></title>
+      <programlisting role="php">
+&lt;?php
+function cube($n) {
+       return $n*$n*$n;
+}
+$a = array(1, 2, 3, 4, 5);
+$b = array_map("cube", $a);
+?&gt;
+      </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">
+&lt;?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
+//         )
+//
+// )
+?&gt;
+      </programlisting>
+     </example>
+    </para>
+    <para>
+     G&eacute;n&eacute;ralement, lorsque vous utilisez plusieurs tableaux, ils doivent
+     &ecirc;tre de m&ecirc;me longueur, car la fonction de callback est 
+appliqu&eacute; &agrave;
+     un &eacute;l&eacute;ment de chaque tableau. Si les tableaux sont de taille 
+in&eacute;gale,
+     les plus courts seront remplis d'&eacute;l&eacute;ments vides.
+    </para>
+    <para>
+     Une utilisation interessante de cette fonction est de construire des
+     tableaux de tableaux, gr&acirc;ce &agrave; la fonction de callback 
+<literal>null</literal>.
+    </para>
+    <para>
+     <example>
+      <title><function>array_map</function> - cr&eacute;ation d'un tableau de 
+tableaux</title>
+      <programlisting role="php">
+&lt?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&eacute;duit it&eacute;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&eacute;rativement
+     la fonction <parameter>callback</parameter> aux &eacute;l&eacute;ments du
+     tableau <parameter>input</parameter>, de mani&egrave;re &agrave; r&eacute;duire 
+le
+     tableau &agrave; une valeur simple. Si l'argument optionnel
+     <parameter>intial</parameter> est disponible, il sera utilis&eacute; 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">
+&lt;?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);
+?&gt;
+      </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>

Reply via email to