aidan           Tue Aug  3 03:07:13 2004 EDT

  Modified files:              
    /phpdoc/en/reference/array/functions        array-walk-recursive.xml 
  Log:
  Half documented - I was unable to complete it because PHP segfaults when I use the 
function!
  Commiting so we don't double up on the work
  
http://cvs.php.net/diff.php/phpdoc/en/reference/array/functions/array-walk-recursive.xml?r1=1.1&r2=1.2&ty=u
Index: phpdoc/en/reference/array/functions/array-walk-recursive.xml
diff -u phpdoc/en/reference/array/functions/array-walk-recursive.xml:1.1 
phpdoc/en/reference/array/functions/array-walk-recursive.xml:1.2
--- phpdoc/en/reference/array/functions/array-walk-recursive.xml:1.1    Mon May 17 
11:35:22 2004
+++ phpdoc/en/reference/array/functions/array-walk-recursive.xml        Tue Aug  3 
03:07:13 2004
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='iso-8859-1'?>
-<!-- $Revision: 1.1 $ -->
+<!-- $Revision: 1.2 $ -->
   <refentry id="function.array-walk-recursive">
    <refnamediv>
     <refname>array_walk_recursive</refname>
@@ -15,9 +15,70 @@
      <methodparam><type>string</type><parameter>funcname</parameter></methodparam>
      <methodparam 
choice="opt"><type>mixed</type><parameter>userdata</parameter></methodparam>
     </methodsynopsis>
+    <simpara>
+     &return.success;
+    </simpara>
+    <simpara>
+     Applies the user-defined function <parameter>function</parameter> to each
+     element of the <parameter>array</parameter> array. This function will recur
+     into deeper arrays. Typically,  <parameter>function</parameter> takes on two
+     parameters. The <parameter>array</parameter> parameter's value being the first, 
and
+     the key/index second. If the optional <parameter>userdata</parameter>
+     parameter is supplied, it will be passed as the third parameter to
+     the callback <parameter>function</parameter>.
+    </simpara>
+    <note>
+     <para>
+      If <parameter>function</parameter> needs to be working with the
+      actual values of the array, specify the first parameter of
+      <parameter>function</parameter> as a 
+      <link linkend="language.references">reference</link>. Then,
+      any changes made to those elements will be made in the 
+      original array itself.
+     </para>
+    </note>
+    <para>
+     <example>
+      <title><function>array_walk_recursive</function> example</title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+$sweet = array('a' => 'apple', 'b' => 'banana');
+$fruits = array('sweet' => $sweet, 'sour' => 'lemon');
 
-     &warn.undocumented.func;
+function test_alter(&$item1, $key, $prefix) 
+{
+    $item1 = "$prefix: $item1";
+}
 
+function test_print($item2, $key) 
+{
+    echo "$key. $item2<br />\n";
+}
+
+echo "Before ...:\n";
+array_walk($fruits, 'test_print');
+
+array_walk($fruits, 'test_alter', 'fruit');
+echo "... and after:\n";
+
+array_walk($fruits, 'test_print');
+?>
+]]>
+      </programlisting>
+      <para>
+       The printout of the program above will be:
+      </para>
+      <screen role="php">
+<![CDATA[
+// No idea, because PHP segfaults!
+]]>
+      </screen>
+     </example>
+    </para>
+    <simpara>
+     See also <function>array_walk</function>
+    </simpara>
    </refsect1>
   </refentry>
 

Reply via email to