cycle98         Fri Mar  2 00:41:54 2001 EDT

  Modified files:              
    /phpdoc/kr/functions        array.xml 
  Log:
  50% TRANSLATION
  
  
Index: phpdoc/kr/functions/array.xml
diff -u phpdoc/kr/functions/array.xml:1.3 phpdoc/kr/functions/array.xml:1.4
--- phpdoc/kr/functions/array.xml:1.3   Wed Feb 28 04:07:42 2001
+++ phpdoc/kr/functions/array.xml       Fri Mar  2 00:41:53 2001
@@ -1,2780 +1,2795 @@
- <reference id="ref.array">
-  <title>Array Functions</title>
-  <titleabbrev>Arrays</titleabbrev>
-  <partintro>
-   <simpara>
-    These functions allow you to interact with and manipulate
-    arrays in various ways. Arrays are essential for storing,
-    managing, and operating on sets of variables.
-   </simpara>
-   <simpara>
-    Simple and multi-dimensional arrays are supported, and may be
-    either user created or created by another function.
-    There are specific database handling functions for populating
-    arrays from database queries, and several functions return arrays.
-   </simpara>
-   <para>
-    See also <function>is_array</function>, <function>explode</function>, 
-    <function>implode</function>, <function>split</function> 
-    and <function>join</function>.
-   </para>
-  </partintro>
-
-  <refentry id="function.array">
-   <refnamediv>
-    <refname>array</refname>
-    <refpurpose>
-     Create an array
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array</function></funcdef>
-      <paramdef>mixed 
-       <parameter><optional>...</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Returns an array of the parameters.  The parameters can be given
-     an index with the <literal>=&gt;</literal> operator.
-    </para>
-    <para>
-     <note>
-      <para>
-       <function>Array</function> is a language construct used to
-       represent literal arrays, and not a regular function.
-      </para>
-     </note>
-    </para>
-    <para>
-     Syntax "index =&gt; values", separated by commas, define index
-     and values. index may be of type string or numeric. When index is
-     omitted, a integer index is automatically generated, starting
-     at 0. If index is an integer, next generated index will
-     be the biggest integer index + 1. Note that when two identical
-     index are defined, the last overwrite the first.
-    </para>
-    <para>
-     The following example demonstrates how to create a
-     two-dimensional array, how to specify keys for associative
-     arrays, and how to skip-and-continue numeric indices in normal
-     arrays.
-     <example>
-      <title><function>Array</function> example</title>
-      <programlisting role="php">
-$fruits = array (
-    "fruits"  =&gt; array ("a"=&gt;"orange", "b"=&gt;"banana", "c"=&gt;"apple"),
-    "numbers" =&gt; array (1, 2, 3, 4, 5, 6),
-    "holes"   =&gt; array ("first", 5 =&gt; "second", "third")
-);
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     <example>
-      <title>Automatic index with <function>Array</function></title>
-      <programlisting role="php">
-$array = array( 1, 1, 1, 1,  1, 8=>1,  4=>1, 19, 3=>13);
-print_r($array);
-      </programlisting>
-     </example>
-     which will display : 
-     <informalexample>
-      <programlisting>
-Array
-(
-    [0] => 1
-    [1] => 1
-    [2] => 1
-    [3] => 13
-    [4] => 1
-    [8] => 1
-    [9] => 19
-)
-      </programlisting>
-     </informalexample>
-     Note that index '3' is defined twice, and keep its final value of 13.
-     Index 4 is defined after index 8, and next generated index (value 19)
-     is 9, since biggest index was 8. 
-    </para>
-    <para>
-     This example creates a 1-based array.
-     <example>
-      <title>1-based index with <function>Array</function></title>
-      <programlisting role="php">
-        $firstquarter  = array(1 => 'January', 'February', 'March');
-        print_r($firstquarter);
-      </programlisting>
-     </example>
-     which will display : 
-     <informalexample>
-      <programlisting>
-Array 
-(
-    [1] => 'January'
-    [2] => 'February'
-    [3] => 'March'
-)
-      </programlisting>
-     </informalexample>
-    </para>
-    <para>
-     See also: <function>list</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-count-values">
-   <refnamediv>
-    <refname>array_count_values</refname>
-    <refpurpose>Counts all the values of an array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_count_values</function></funcdef>
-      <paramdef>array <parameter>input</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_count_values</function> returns an array using
-     the values of the <parameter>input</parameter> array as keys and
-     their frequency in <parameter>input</parameter> as values.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_count_values</function> example</title>
-      <programlisting role="php">
-$array = array (1, "hello", 1, "world", "hello");
-array_count_values ($array); // returns array (1=&gt;2, "hello"=&gt;2, "world"=&gt;1)
-      </programlisting>
-     </example>     
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-diff">
-   <refnamediv>
-    <refname>array_diff</refname>
-    <refpurpose>Computes the difference of arrays</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_diff</function></funcdef>
-      <paramdef>array <parameter>array1</parameter></paramdef>
-      <paramdef>array <parameter>array2</parameter></paramdef>
-      <paramdef>array
-       <parameter><optional> ...</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_diff</function> returns an array
-     containing all the values of <parameter>array1</parameter>
-     that are not present in any of the other arguments.
-     Note that keys are preserved.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_diff</function> example</title>
-      <programlisting role="php">
-$array1 = array ("a" =&gt; "green", "red", "blue");
-$array2 = array ("b" =&gt; "green", "yellow", "red");
-$result = array_diff ($array1, $array2);
-      </programlisting>
-     </example>
-    </para>     
-    <para>
-     This makes <varname>$result</varname> have <literal>array
-     ("blue");</literal>
-    </para>
-    <para>
-     See also <function>array_intersect</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-flip">
-   <refnamediv>
-    <refname>array_flip</refname>
-    <refpurpose>Flip all the values of an array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_flip</function></funcdef>
-      <paramdef>array <parameter>trans</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_flip</function> returns an array in flip order.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_flip</function> example</title>
-      <programlisting role="php">
-$trans = array_flip ($trans);
-$original = strtr ($str, $trans);
-      </programlisting>
-     </example>
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-intersect">
-   <refnamediv>
-    <refname>array_intersect</refname>
-    <refpurpose>Computes the intersection of arrays</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_intersect</function></funcdef>
-      <paramdef>array <parameter>array1</parameter></paramdef>
-      <paramdef>array <parameter>array2</parameter></paramdef>
-      <paramdef>array
-       <parameter><optional> ...</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_intersect</function> returns an array
-     containing all the values of <parameter>array1</parameter>
-     that are present in all the arguments.
-     Note that keys are preserved.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_intersect</function> example</title>
-      <programlisting role="php">
-$array1 = array ("a" =&gt; "green", "red", "blue");
-$array2 = array ("b" =&gt; "green", "yellow", "red");
-$result = array_intersect ($array1, $array2);
-      </programlisting>
-     </example>
-    </para>     
-    <para>
-     This makes <varname>$result</varname> have <literal>array ("a"
-     =&gt; "green", "red");</literal>
-    </para>
-    <para>
-     See also <function>array_diff</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-keys">
-   <refnamediv>
-    <refname>array_keys</refname>
-    <refpurpose>Return all the keys of an array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_keys</function></funcdef>
-      <paramdef>array <parameter>input</parameter></paramdef>
-      <paramdef>mixed
-       <parameter>
-        <optional>search_value</optional>
-       </parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_keys</function> returns the keys, numeric and
-     string, from the <parameter>input</parameter> array.
-    </para>
-    <para>
-     If the optional <parameter>search_value</parameter> is specified,
-     then only the keys for that value are returned. Otherwise, all
-     the keys from the <parameter>input</parameter> are returned.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_keys</function> example</title>
-      <programlisting role="php">
-$array = array (0 =&gt; 100, "color" =&gt; "red");
-array_keys ($array);       // returns array (0, "color")
-
-$array = array ("blue", "red", "green", "blue", "blue");
-array_keys ($array, "blue");  //  returns array (0, 3, 4) 
-
-$array = array ("color" =&gt; array("blue", "red", "green"), "size" =&gt; 
array("small", "medium", "large"));
-array_keys ($array);  //  returns array ("color", "size") 
-      </programlisting>
-     </example>
-    </para>
-    <note>
-     <para>
-      This function was added to PHP 4, below is an implementation for
-      those still using PHP 3.
-      <example>
-       <title>
-    Implementation of <function>array_keys</function> for PHP 3
-    users
-       </title>
-       <programlisting role="php">
-function array_keys ($arr, $term="") {
-    $t = array();
-    while (list($k,$v) = each($arr)) {
-        if ($term &amp;&amp; $v != $term)
-            continue;
-            $t[] = $k;
-        }
-        return $t;
-}
-       </programlisting>
-      </example>
-     </para>
-    </note>
-    <para>
-     See also <function>array_values</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-merge">
-   <refnamediv>
-    <refname>array_merge</refname>
-    <refpurpose>Merge two or more arrays</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_merge</function></funcdef>
-      <paramdef>array <parameter>array1</parameter></paramdef>
-      <paramdef>array <parameter>array2</parameter></paramdef>
-      <paramdef>array
-       <parameter><optional>...</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_merge</function> merges the elements of two or
-     more arrays together so that the values of one are appended to
-     the end of the previous one.  It returns the resulting array.
-    </para>
-    <para>
-     If the input arrays have the same string keys, then the later
-     value for that key will overwrite the previous one.  If, however, 
-     the arrays have the same numeric key, the later value will not 
-     overwrite the original value, but will be appended.
-    </para>
-    <para>
-     <example>
-      <title><function>array_merge</function> example</title>
-      <programlisting role="php">
-$array1 = array ("color" =&gt; "red", 2, 4);
-$array2 = array ("a", "b", "color" =&gt; "green", "shape" =&gt; "trapezoid", 4);
-array_merge ($array1, $array2);
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     Resulting array will be <literal>array("color" =&gt; "green", 2, 4,
-     "a", "b", "shape" =&gt; "trapezoid", 4)</literal>.
-    </para>
-    <para>
-     See also <function>array_merge_recursive</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-merge-recursive">
-   <refnamediv>
-    <refname>array_merge_recursive</refname>
-    <refpurpose>Merge two or more arrays recursively</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_merge_recursive</function></funcdef>
-      <paramdef>array <parameter>array1</parameter></paramdef>
-      <paramdef>array <parameter>array2</parameter></paramdef>
-      <paramdef>array
-       <parameter><optional>...</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_merge_recursive</function> merges the elements of
-     two or more arrays together so that the values of one are appended
-     to the end of the previous one.  It returns the resulting array.
-    </para>
-    <para>
-     If the input arrays have the same string keys, then the values for
-     these keys are merged together into an array, and this is done
-     recursively, so that if one of the values is an array itself, the
-     function will merge it with a corresponding entry in another array
-     too. If, however, the arrays have the same numeric key, the later
-     value will not overwrite the original value, but will be appended.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_merge_recursive</function> example</title>
-      <programlisting role="php">
-$ar1 = array ("color" =&gt; array ("favorite" =&gt; "red"), 5);
-$ar2 = array (10, "color" =&gt; array ("favorite" =&gt; "green", "blue"));
-$result = array_merge_recursive ($ar1, $ar2);
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     Resulting array will be <literal>array ("color" =&gt; array
-     ("favorite" =&gt; array ("red", "green"), "blue"), 5, 10)</literal>.
-    </para>
-    <para>
-     See also <function>array_merge</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-multisort">
-   <refnamediv>
-    <refname>array_multisort</refname>
-    <refpurpose>Sort multiple or multi-dimensional arrays</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>bool <function>array_multisort</function></funcdef>
-      <paramdef>array <parameter>ar1</parameter></paramdef>
-      <paramdef>mixed
-       <parameter><optional>arg</optional></parameter>
-      </paramdef>
-      <paramdef>mixed
-       <parameter><optional>...</optional></parameter>
-      </paramdef>
-      <paramdef>array
-       <parameter><optional>...</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_multisort</function> can be used to sort several
-     arrays at once or a multi-dimensional array according by one of
-     more dimensions. It maintains key association when sorting.
-    </para>
-    <para>
-     The input arrays are treated as columns of a table to be sorted
-     by rows - this resembles the functionality of SQL ORDER BY
-     clause. The first array is the primary one to sort by. The rows
-     (values) in that array that compare the same are sorted by the
-     next input array, and so on.
-    </para>
-    <para>
-     The argument structure of this function is a bit unusual, but
-     flexible. The very first argument has to be an
-     array. Subsequently, each argument can be either an array or a
-     sorting flag from the following lists.
-    </para>
-    <para>
-     Sorting order flags:
-     <itemizedlist>
-      <listitem>
-       <simpara>SORT_ASC - sort in ascending order</simpara>
-      </listitem>
-      <listitem>
-       <simpara>SORT_DESC - sort in descending order</simpara>
-      </listitem>
-     </itemizedlist>
-    </para>
-    <para>
-     Sorting type flags:
-     <itemizedlist>
-      <listitem>
-       <simpara>SORT_REGULAR - compare items normally</simpara>
-      </listitem>
-      <listitem>
-       <simpara>SORT_NUMERIC - compare items numerically</simpara>
-      </listitem>
-      <listitem>
-       <simpara>SORT_STRING - compare items as strings</simpara>
-      </listitem>
-     </itemizedlist>
-    </para>
-    <para>
-     No two sorting flags of the same type can be specified after each
-     array. The sortings flags specified after an array argument apply
-     only to that array - they are reset to default SORT_ASC and
-     SORT_REGULAR after before each new array argument.
-    </para>
-    <para>
-     Returns <literal>TRUE</literal> on success, <literal>FALSE</literal>
-     on failure.
-    </para>
-    <para>
-     <example>
-      <title>Sorting multiple arrays</title>
-      <programlisting role="php">
-$ar1 = array ("10", 100, 100, "a");
-$ar2 = array (1, 3, "2", 1);
-array_multisort ($ar1, $ar2);
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     In this example, after sorting, the first array will contain 10,
-     "a", 100, 100. The second array will contain 1, 1, 2, "3". The
-     entries in the second array corresponding to the identical
-     entries in the first array (100 and 100) were sorted as well.
-    </para>
-    <para>
-     <example>
-      <title>Sorting multi-dimensional array</title>
-      <programlisting role="php">
-$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
-array_multisort ($ar[0], SORT_ASC, SORT_STRING, 
-                 $ar[1], SORT_NUMERIC, SORT_DESC);
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     In this example, after sorting, the first array will contain 10,
-     100, 100, "a" (it was sorted as strings in ascending order), and
-     the second one will contain 1, 3, "2", 1 (sorted as numbers, in
-     descending order).
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-pad">
-   <refnamediv>
-    <refname>array_pad</refname>
-    <refpurpose>
-     Pad array to the specified length with a value
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_pad</function></funcdef>
-      <paramdef>array <parameter>input</parameter></paramdef>
-      <paramdef>int <parameter>pad_size</parameter></paramdef>
-      <paramdef>mixed <parameter>pad_value</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_pad</function> returns a copy of the
-     <parameter>input</parameter> padded to size specified by
-     <parameter>pad_size</parameter> with value
-     <parameter>pad_value</parameter>. If
-     <parameter>pad_size</parameter> is positive then the array is
-     padded on the right, if it's negative then on the left. If the
-     absolute value of <parameter>pad_size</parameter> is less than or
-     equal to the length of the <parameter>input</parameter> then no
-     padding takes place.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_pad</function> example</title>
-      <programlisting role="php">
-$input = array (12, 10, 9);
-
-$result = array_pad ($input, 5, 0);
-// result is array (12, 10, 9, 0, 0)
-
-$result = array_pad ($input, -7, -1);
-// result is array (-1, -1, -1, -1, 12, 10, 9)
-
-$result = array_pad ($input, 2, "noop");
-// not padded
-      </programlisting>
-     </example>
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-pop">
-   <refnamediv>
-    <refname>array_pop</refname>
-    <refpurpose>Pop the element off the end of array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>mixed <function>array_pop</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_pop</function> pops and returns the last value of
-     the <parameter>array</parameter>, shortening the
-     <parameter>array</parameter> by one element.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_pop</function> example</title>
-      <programlisting role="php">
-$stack = array ("orange", "apple", "raspberry");
-$fruit = array_pop ($stack);
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     After this, <varname>$stack</varname> has only 2 elements:
-     "orange" and "apple", and <varname>$fruit</varname> has
-     "raspberry".
-    </para>
-    <para>
-     See also <function>array_push</function>,
-     <function>array_shift</function>, and
-     <function>array_unshift</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-push">
-   <refnamediv>
-    <refname>array_push</refname>
-    <refpurpose>
-     Push one or more elements onto the end of array
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>array_push</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>mixed <parameter>var</parameter></paramdef>
-      <paramdef>mixed
-       <parameter><optional>...</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_push</function> treats
-     <parameter>array</parameter> as a stack, and pushes the passed
-     variables onto the end of <parameter>array</parameter>. The
-     length of <parameter>array</parameter> increases by the number of
-     variables pushed. Has the same effect as:
-     <programlisting role="php">
-$array[] = $var;
-     </programlisting>
-     repeated for each <parameter>var</parameter>.
-    </para>
-    <para>
-     Returns the new number of elements in the array.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_push</function> example</title>
-      <programlisting role="php">
-$stack = array (1, 2);
-array_push ($stack, "+", 3);
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This example would result in <varname>$stack</varname> having 4
-     elements: 1, 2, "+", and 3.
-    </para>
-    <para>
-     See also: <function>array_pop</function>,
-     <function>array_shift</function>, and
-     <function>array_unshift</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-rand">
-   <refnamediv>
-    <refname>array_rand</refname>
-    <refpurpose>
-     Pick one or more random entries out of an array
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>mixed <function>array_rand</function></funcdef>
-      <paramdef>array <parameter>input</parameter></paramdef>
-      <paramdef>int
-       <parameter><optional>num_req</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_rand</function> is rather useful when you want to
-     pick one or more random entries out of an array. It takes an
-     <parameter>input</parameter> array and an optional argument
-     <parameter>num_req</parameter> which specifies how many entries you
-     want to pick - if not specified, it defaults to 1.
-    </para>
-    <para>
-     If you are picking only one entry, <function>array_rand</function>
-     returns the key for a random entry. Otherwise, it returns an array
-     of keys for the random entries. This is done so that you can pick
-     random keys as well as values out of the array.
-    </para>
-    <para>
-     Don't forget to call <function>srand</function> to seed the random
-     number generator.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_rand</function> example</title>
-      <programlisting role="php">
-srand ((double) microtime() * 10000000);
-$input = array ("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
-$rand_keys = array_rand ($input, 2);
-print $input[$rand_keys[0]]."\n";
-print $input[$rand_keys[1]]."\n";
-      </programlisting>
-     </example>
-    </para>
-   </refsect1>
-  </refentry>
-  
-  <refentry id="function.array-reverse">
-   <refnamediv>
-    <refname>array_reverse</refname>
-    <refpurpose>
-     Return an array with elements in reverse order
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_reverse</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>bool 
<parameter><optional>preserve_keys</optional></parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_reverse</function> takes input
-     <parameter>array</parameter> and returns a new array with the
-     order of the elements reversed, preserving the keys if
-     <parameter>preserve_keys</parameter> is <literal>TRUE</literal>.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_reverse</function> example</title>
-      <programlisting role="php">
-$input = array ("php", 4.0, array ("green", "red"));
-$result = array_reverse ($input);
-$result_keyed = array_reverse ($input, TRUE);
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This makes <varname>$result</varname> have <literal>array
-     (array ("green", "red"), 4.0, "php")</literal>. But
-     <varname>$result2[0]</varname> is still
-     <literal>"php"</literal>.
-    </para>
-    <note>
-     <para>
-      The second parameter was added in PHP 4.0.3.
-     </para>
-    </note>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-shift">
-   <refnamediv>
-    <refname>array_shift</refname>
-    <refpurpose>
-     Pop an element off the beginning of array
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>mixed <function>array_shift</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_shift</function> shifts the first value of the
-     <parameter>array</parameter> off and returns it, shortening the
-     <parameter>array</parameter> by one element and moving everything
-     down.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_shift</function> example</title>
-      <programlisting role="php">
-$args = array ("-v", "-f");
-$opt = array_shift ($args);
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This would result in <varname>$args</varname> having one element
-     "-f" left, and <varname>$opt</varname> being "-v".
-    </para>
-    <para>
-     See also <function>array_unshift</function>,
-     <function>array_push</function>, and
-     <function>array_pop</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-slice">
-   <refnamediv>
-    <refname>array_slice</refname>
-    <refpurpose>Extract a slice of the array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_slice</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>int <parameter>offset</parameter></paramdef>
-      <paramdef>int
-       <parameter>
-        <optional>length</optional>
-       </parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_slice</function> returns a sequence of elements
-     from the <parameter>array</parameter> specified by the
-     <parameter>offset</parameter> and <parameter>length</parameter>
-     parameters.
-    </para>
-    <para>
-     If <parameter>offset</parameter> is positive, the sequence will
-     start at that offset in the <parameter>array</parameter>.  If
-     <parameter>offset</parameter> is negative, the sequence will
-     start that far from the end of the <parameter>array</parameter>.
-    </para>
-    <para>
-     If <parameter>length</parameter> is given and is positive, then
-     the sequence will have that many elements in it. If
-     <parameter>length</parameter> is given and is negative then the
-     sequence will stop that many elements from the end of the
-     array. If it is omitted, then the sequence will have everything
-     from <parameter>offset</parameter> up until the end of the
-     <parameter>array</parameter>.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_slice</function> examples</title>
-      <programlisting role="php">
-$input = array ("a", "b", "c", "d", "e");
-
-$output = array_slice ($input, 2);      // returns "c", "d", and "e"
-$output = array_slice ($input, 2, -1);  // returns "c", "d"
-$output = array_slice ($input, -2, 1);  // returns "d"
-$output = array_slice ($input, 0, 3);   // returns "a", "b", and "c"
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     See also <function>array_splice</function>.
-    </para>     
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-splice">
-   <refnamediv>
-    <refname>array_splice</refname>
-    <refpurpose>
-     Remove a portion of the array and replace it with something
-     else
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_splice</function></funcdef>
-      <paramdef>array <parameter>input</parameter></paramdef>
-      <paramdef>int <parameter>offset</parameter></paramdef>
-      <paramdef>int
-       <parameter><optional>length</optional></parameter>
-      </paramdef>
-      <paramdef>array
-       <parameter>
-        <optional>replacement</optional>
-       </parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_splice</function> removes the elements designated
-     by <parameter>offset</parameter> and
-     <parameter>length</parameter> from the
-     <parameter>input</parameter> array, and replaces them with the
-     elements of the <parameter>replacement</parameter> array, if
-     supplied.
-    </para>
-    <para>
-     If <parameter>offset</parameter> is positive then the start of
-     removed portion is at that offset from the beginning of the
-     <parameter>input</parameter> array.  If
-     <parameter>offset</parameter> is negative then it starts that far
-     from the end of the <parameter>input</parameter> array.
-    </para>
-    <para>
-     If <parameter>length</parameter> is omitted, removes everything
-     from <parameter>offset</parameter> to the end of the array.  If
-     <parameter>length</parameter> is specified and is positive, then
-     that many elements will be removed. If
-     <parameter>length</parameter> is specified and is negative then
-     the end of the removed portion will be that many elements from
-     the end of the array.  Tip: to remove everything from
-     <parameter>offset</parameter> to the end of the array when
-     <parameter>replacement</parameter> is also specified, use
-     <literal>count($input)</literal> for
-     <parameter>length</parameter>.
-    </para>
-    <para>
-     If <parameter>replacement</parameter> array is specified, then
-     the removed elements are replaced with elements from this array.
-     If <parameter>offset</parameter> and
-     <parameter>length</parameter> are such that nothing is removed,
-     then the elements from the <parameter>replacement</parameter>
-     array are inserted in the place specified by the
-     <parameter>offset</parameter>. Tip: if the replacement is just
-     one element it is not necessary to put <literal>array()</literal>
-     around it, unless the element is an array itself.
-    </para>
-    <para>
-     The following equivalences hold:
-     <programlisting>
-array_push ($input, $x, $y)     array_splice ($input, count ($input), 0, 
-                                             array ($x, $y))
-array_pop ($input)              array_splice ($input, -1)
-array_shift ($input)            array_splice ($input, 0, 1)
-array_unshift ($input, $x, $y)  array_splice ($input, 0, 0, array ($x, $y))
-$a[$x] = $y                     array_splice ($input, $x, 1, $y)
-     </programlisting>
-    </para>
-    <para>
-     Returns the array consisting of removed elements.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_splice</function> examples</title>
-      <programlisting role="php">
-$input = array ("red", "green", "blue", "yellow");
-
-array_splice ($input, 2);      // $input is now array ("red", "green")
-array_splice ($input, 1, -1);  // $input is now array ("red", "yellow")
-array_splice ($input, 1, count($input), "orange");  
-                               // $input is now array ("red", "orange")
-array_splice ($input, -1, 1, array("black", "maroon")); 
-                               // $input is now array ("red", "green", 
-                               //          "blue", "black", "maroon")
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     See also <function>array_slice</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-unique">
-   <refnamediv>
-    <refname>array_unique</refname>
-    <refpurpose>Removes duplicate values from an array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_unique</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_unique</function> takes input
-     <parameter>array</parameter> and returns a new array
-     without duplicate values.
-     Note that keys are preserved.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_unique</function> example</title>
-      <programlisting role="php">
-$input = array ("a" =&gt; "green", "red", "b" =&gt; "green", "blue", "red");
-$result = array_unique ($input);
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This makes <varname>$result</varname> have <literal>array ("a" =&gt;
-     "green", "red", "blue");</literal>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-unshift">
-   <refnamediv>
-    <refname>array_unshift</refname>
-    <refpurpose>
-     Push one or more elements onto the beginning of array
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>array_unshift</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>mixed <parameter>var</parameter></paramdef>
-      <paramdef>mixed
-       <parameter>
-        <optional>...</optional>
-       </parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Array_unshift</function> prepends passed elements to
-     the front of the <parameter>array</parameter>. Note that the list
-     of elements is prepended as a whole, so that the prepended
-     elements stay in the same order.
-    </para>
-    <para>
-     Returns the new number of elements in the
-     <parameter>array</parameter>.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_unshift</function> example</title>
-      <programlisting role="php">
-$queue = array ("p1", "p3");
-array_unshift ($queue, "p4", "p5", "p6");
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This would result in <varname>$queue</varname> having 5
-     elements: "p4", "p5", "p6", "p1", and "p3".
-    </para>
-    <para>
-     See also <function>array_shift</function>,
-     <function>array_push</function>, and
-     <function>array_pop</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-values">
-   <refnamediv>
-    <refname>array_values</refname>
-    <refpurpose>Return all the values of an array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>array_values</function></funcdef>
-      <paramdef>array <parameter>input</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>array_values</function> returns all the values from the
-     <parameter>input</parameter> array.
-    </para>
-    <para>
-     <example>
-      <title><function>Array_values</function> example</title>
-      <programlisting role="php">
-$array = array ("size" =&gt; "XL", "color" =&gt; "gold");
-array_values ($array);    // returns array ("XL", "gold")
-      </programlisting>
-     </example>
-    </para>
-    <note>
-     <para>
-      This function was added to PHP 4, below is an implementation for
-      those still using PHP 3.
-      <example>
-       <title>
-    Implementation of <function>array_values</function> for PHP 3
-    users
-       </title>
-       <programlisting role="php">
-function array_values ($arr) {
-    $t = array();
-    while (list($k, $v) = each ($arr)) {
-        $t[] = $v;
-        return $t;
-    }
-}
-       </programlisting>
-      </example>
-     </para>
-    </note>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-walk">
-   <refnamediv>
-    <refname>array_walk</refname>
-    <refpurpose>
-     Apply a user function to every member of an array
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>array_walk</function></funcdef>
-      <paramdef>array <parameter>arr</parameter></paramdef>
-      <paramdef>string <parameter>func</parameter></paramdef>
-      <paramdef>mixed <parameter>userdata</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <simpara>
-     Applies the function named by <parameter>func</parameter> to each
-     element of <parameter>arr</parameter>.
-     <parameter>func</parameter> will be passed array value as the
-     first parameter and array key as the second parameter.  If
-     <parameter>userdata</parameter> is supplied, it will be passed as
-     the third parameter to the user function.
-    </simpara>
-    <simpara>
-     If <parameter>func</parameter> requires more than two or three
-     arguments, depending on <parameter>userdata</parameter>, a
-     warning will be generated each time
-     <function>array_walk</function> calls
-     <parameter>func</parameter>. These warnings may be suppressed by
-     prepending the '@' sign to the <function>array_walk</function>
-     call, or by using <function>error_reporting</function>.
-    </simpara>
-    <note>
-     <para>
-      If <parameter>func</parameter> needs to be working with the
-      actual values of the array, specify that the first parameter of
-      <parameter>func</parameter> should be passed by reference. Then
-      any changes made to those elements will be made in the array
-      itself.
-     </para>
-    </note>
-    <note>
-     <para>
-      Passing the key and userdata to <parameter>func</parameter> was
-      added in 4.0.
-     </para>
-     <para>
-      In PHP 4 <function>reset</function> needs to be called as
-      necessary since <function>array_walk</function> does not reset
-      the array by default.
-     </para>
-    </note>
-    <para>
-     <example>
-      <title><function>Array_walk</function> example</title>
-      <programlisting role="php">
-$fruits = array ("d"=&gt;"lemon", "a"=&gt;"orange", "b"=&gt;"banana", 
"c"=&gt;"apple");
-
-function test_alter (&amp;$item1, $key, $prefix) {
-    $item1 = "$prefix: $item1";
-}
-
-function test_print ($item2, $key) {
-    echo "$key. $item2&lt;br&gt;\n";
-}
-
-array_walk ($fruits, 'test_print');
-reset ($fruits);
-array_walk ($fruits, 'test_alter', 'fruit');
-reset ($fruits);
-array_walk ($fruits, 'test_print');
-      </programlisting>
-     </example>
-    </para>
-    <simpara>
-     See also <function>each</function> and <function>list</function>.
-    </simpara>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.arsort">
-   <refnamediv>
-    <refname>arsort</refname>
-    <refpurpose>
-     Sort an array in reverse order and maintain index association
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>void <function>arsort</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>int 
-       <parameter><optional>sort_flags</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function sorts an array such that array indices maintain
-     their correlation with the array elements they are associated
-     with.  This is used mainly when sorting associative arrays where
-     the actual element order is significant.
-     <example>
-      <title><function>Arsort</function> example</title>
-      <programlisting role="php">
-$fruits = array ("d"=&gt;"lemon", "a"=&gt;"orange", "b"=&gt;"banana", 
"c"=&gt;"apple");
-arsort ($fruits);
-reset ($fruits);
-while (list ($key, $val) = each ($fruits)) {
-    echo "$key = $val\n";
-}
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This example would display:
-    </para>
-    <para>
-     <informalexample>
-      <programlisting>
-fruits[a] = orange
-fruits[d] = lemon
-fruits[b] = banana
-fruits[c] = apple
-      </programlisting>
-     </informalexample>
-    </para>
-    <para>
-     The fruits have been sorted in reverse alphabetical order, and
-     the index associated with each element has been maintained.
-    </para>
-    <para>
-     You may modify the behavior of the sort using the optional
-     parameter <parameter>sort_flags</parameter>, for details 
-     see <function>sort</function>.
-    </para>
-    <para>
-     See also: <function>asort</function>, <function>rsort</function>,
-     <function>ksort</function>, and <function>sort</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.asort">
-   <refnamediv>
-    <refname>asort</refname>
-    <refpurpose>Sort an array and maintain index association</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>void <function>asort</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function sorts an array such that array indices maintain
-     their correlation with the array elements they are associated
-     with.  This is used mainly when sorting associative arrays where
-     the actual element order is significant.
-     <example>
-      <title><function>Asort</function> example</title>
-      <programlisting role="php">
-$fruits = array ("d"=&gt;"lemon", "a"=&gt;"orange", "b"=&gt;"banana", 
"c"=&gt;"apple");
-asort ($fruits);
-reset ($fruits);
-while (list ($key, $val) = each ($fruits)) {
-    echo "$key = $val\n";
-}
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This example would display:
-    </para>
-    <para>
-     <informalexample>
-      <programlisting>
-fruits[c] = apple
-fruits[b] = banana
-fruits[d] = lemon
-fruits[a] = orange
-      </programlisting>
-     </informalexample>
-    </para>
-    <para>
-     The fruits have been sorted in alphabetical order, and the index
-     associated with each element has been maintained.
-    </para>
-    <para>
-     You may modify the behavior of the sort using the optional
-     parameter <parameter>sort_flags</parameter>, for details 
-     see <function>sort</function>.
-    </para>
-    <para>
-     See also <function>arsort</function>, <function>rsort</function>,
-     <function>ksort</function>, and <function>sort</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.compact">
-   <refnamediv>
-    <refname>compact</refname>
-    <refpurpose>
-     Create array containing variables and their values
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>compact</function></funcdef>
-      <paramdef>mixed <parameter>varname</parameter></paramdef>
-      <paramdef>mixed
-       <parameter><optional>...</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Compact</function> takes a variable number of
-     parameters. Each parameter can be either a string containing the
-     name of the variable, or an array of variable names.  The array
-     can contain other arrays of variable names inside it;
-     <function>compact</function> handles it recursively.
-    </para>
-    <para>
-     For each of these, <function>compact</function> looks for a
-     variable with that name in the current symbol table and adds it
-     to the output array such that the variable name becomes the key
-     and the contents of the variable become the value for that key.
-     In short, it does the opposite of <function>extract</function>.
-     It returns the output array with all the variables added to it.
-    </para>
-    <para>
-     Any strings that are not set will simply be skipped.
-    </para>
-    <para>
-     <example>
-      <title><function>Compact</function> example</title>
-      <programlisting role="php">
-$city = "San Francisco";
-$state = "CA";
-$event = "SIGGRAPH";
-
-$location_vars = array ("city", "state");
-
-$result = compact ("event", "nothing_here", $location_vars);
-      </programlisting>
-      <para>
-       After this, <varname>$result</varname> will be <literal>array ("event"
-       =&gt; "SIGGRAPH", "city" =&gt; "San Francisco", "state" =&gt; "CA")</literal>.
-      </para>
-     </example>
-    </para>
-    <para>
-     See also <function>extract</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.count">
-   <refnamediv>
-    <refname>count</refname>
-    <refpurpose>Count elements in a variable</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>count</function></funcdef>
-      <paramdef>mixed <parameter>var</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Returns the number of elements in <parameter>var</parameter>,
-     which is typically an array (since anything else will have one
-     element).
-    </para>
-    <para>
-     Returns 1 if the variable is not an array.
-    </para>
-    <para>
-     Returns 0 if the variable is not set.
-     <warning>
-      <para>
-       <function>Count</function> may return 0 for a variable that
-       isn't set, but it may also return 0 for a variable that has
-       been initialized with an empty array. Use
-       <function>isset</function> to test if a variable is set.
-      </para>
-     </warning>
-    </para>
-    <para>
-     <example>
-      <title><function>Count</function> example</title>
-      <programlisting role="php">
-$a[0] = 1; 
-$a[1] = 3; 
-$a[2] = 5; 
-$result = count ($a);
-//$result == 3
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     See also: <function>sizeof</function>,
-     <function>isset</function>, and
-     <function>is_array</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.current">
-   <refnamediv>
-    <refname>current</refname>
-    <refpurpose>Return the current element in an array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>mixed <function>current</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Every array has an internal pointer to its "current" element,
-     which is initialized to the first element inserted into the
-     array.
-    </para>
-    <para>
-     The <function>current</function> function simply returns the
-     array element that's currently being pointed by the internal
-     pointer.  It does not move the pointer in any way.  If the
-     internal pointer points beyond the end of the elements list,
-     <function>current</function> returns <literal>FALSE</literal>.
-     <warning>
-      <para> 
-       If the array contains empty elements (0 or "", the empty
-       string) then this function will return <literal>FALSE</literal> 
-       for these elements as well.  This makes it impossible to 
-       determine if you are really at the end of the list in such 
-       an array using <function>current</function>.  To properly 
-       traverse an array that may contain empty elements, use the
-       <function>each</function> function.  
-      </para>
-     </warning>
-    </para>
-    <para>
-     See also: <function>end</function>, <function>next</function>,
-     <function>prev</function>, and <function>reset</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.each">
-   <refnamediv>
-    <refname>each</refname> 
-    <refpurpose>
-     Return the next key and value pair from an array
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>each</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Returns the current key and value pair from the array
-     <parameter>array</parameter> and advances the array cursor. This
-     pair is returned in a four-element array, with the keys
-     <emphasis>0</emphasis>, <emphasis>1</emphasis>,
-     <emphasis>key</emphasis>, and
-     <emphasis>value</emphasis>. Elements <emphasis>0</emphasis> and
-     <emphasis>key</emphasis> contain the key name of the array
-     element, and <emphasis>1</emphasis> and
-     <emphasis>value</emphasis> contain the data.
-    </para>
-    <para>
-     If the internal pointer for the array points past the end of the
-     array contents, <function>each</function> returns 
-     <literal>FALSE</literal>.
-    </para>
-    <para>
-     <example>
-      <title><function>Each</function> examples</title>
-      <programlisting role="php">
-$foo = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
-$bar = each ($foo);
-      </programlisting>
-      <para>
-       <varname>$bar</varname> now contains the following key/value
-       pairs:
-       <itemizedlist spacing="compact">
-        <listitem><simpara>0 =&gt; 0</simpara></listitem>
-        <listitem><simpara>1 =&gt; 'bob'</simpara></listitem>
-        <listitem><simpara>key =&gt; 0</simpara></listitem>
-        <listitem><simpara>value =&gt; 'bob'</simpara></listitem>
-       </itemizedlist>
-       <programlisting role="php">
-$foo = array ("Robert" =&gt; "Bob", "Seppo" =&gt; "Sepi");
-$bar = each ($foo);
-       </programlisting>
-      </para>
-      <para>
-       <varname>$bar</varname> now contains the following key/value
-       pairs:
-       <itemizedlist spacing="compact">
-        <listitem><simpara>0 =&gt; 'Robert'</simpara></listitem>
-        <listitem><simpara>1 =&gt; 'Bob'</simpara></listitem>
-        <listitem><simpara>key =&gt; 'Robert'</simpara></listitem>
-        <listitem><simpara>value =&gt; 'Bob'</simpara></listitem>
-       </itemizedlist>
-      </para>
-     </example>
-    </para>
-    <para>
-     <function>Each</function> is typically used in conjunction with
-     <function>list</function> to traverse an array; for instance,
-     <varname>$HTTP_POST_VARS</varname>: 
-     <example>
-      <title>
-       Traversing <varname>$HTTP_POST_VARS</varname> with
-       <function>each</function>
-      </title>
-      <programlisting role="php">
-echo "Values submitted via POST method:&lt;br&gt;";
-reset ($HTTP_POST_VARS);
-while (list ($key, $val) = each ($HTTP_POST_VARS)) {
-    echo "$key =&gt; $val&lt;br&gt;";
-}
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     After <function>each</function> has executed, the array cursor
-     will be left on the next element of the array, or on the last
-     element if it hits the end of the array.
-    </para>
-    <para>
-     See also <function>key</function>, <function>list</function>,
-     <function>current</function>, <function>reset</function>,
-     <function>next</function>, and <function>prev</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.end">
-   <refnamediv>
-    <refname>end</refname>
-    <refpurpose>
-     Set the internal pointer of an array to its last element
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>mixed <function>end</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>End</function> advances <parameter>array</parameter>'s
-     internal pointer to the last element, and returns that element.
-    </para>
-    <para>
-     See also: <function>current</function>,
-     <function>each</function>, <function>end</function>,
-     <function>next</function>, and <function>reset</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.extract">
-   <refnamediv>
-    <refname>extract</refname>
-    <refpurpose>
-     Import variables into the symbol table from an array
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>extract</function></funcdef>
-      <paramdef>array <parameter>var_array</parameter></paramdef>
-      <paramdef>int 
-       <parameter><optional>extract_type</optional></parameter>
-      </paramdef>
-      <paramdef>string 
-       <parameter><optional>prefix</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function is used to import variables from an array into the
-     current symbol table.  It takes associative array
-     <parameter>var_array</parameter> and treats keys as variable
-     names and values as variable values.  For each key/value pair it
-     will create a variable in the current symbol table, subject to
-     <parameter>extract_type</parameter> and
-     <parameter>prefix</parameter> parameters.
-    </para>
-    <note>
-     <para>
-      Since version 4.0.5 this function returns the number of
-      variables extracted.
-     </para>
-    </note>
-    <para>
-     <function>extract</function> checks each key to see whether if constitutes
-     a valid variable name and also for collisions with existing variables in
-     the symbol table. The way invalid/numeric keys and collisions are treated
-     is determined by <parameter>extract_type</parameter>. It can be one of the
-     following values:
-     <variablelist>
-      <varlistentry>
-       <term>EXTR_OVERWRITE</term>
-       <listitem>
-        <simpara>
-         If there is a collision, overwrite the existing variable.
-        </simpara>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>EXTR_SKIP</term>
-       <listitem>
-        <simpara>
-         If there is a collision, don't overwrite the existing
-         variable.
-        </simpara>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>EXTR_PREFIX_SAME</term>
-       <listitem>
-        <simpara>If there is a collision, prefix the variable name with
-        <parameter>prefix</parameter>.
-        </simpara>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>EXTR_PREFIX_ALL</term>
-       <listitem>
-        <simpara>
-         Prefix all variable names with <parameter>prefix</parameter>. Since PHP
-         4.0.5 this includes numeric ones as well.
-        </simpara>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>EXTR_PREFIX_INVALID</term>
-       <listitem>
-        <simpara>
-         Only prefix invalid/numeric variable names with
-         <parameter>prefix</parameter>. This flag has been added in PHP 4.0.5.
-        </simpara>
-       </listitem>
-      </varlistentry>
-     </variablelist>
-    </para>
-    <para>
-     If <parameter>extract_type</parameter> is not specified, it is
-     assumed to be EXTR_OVERWRITE.
-    </para>
-    <para>
-     Note that <parameter>prefix</parameter> is only required if
-     <parameter>extract_type</parameter> is EXTR_PREFIX_SAME, EXTR_PREFIX_ALL,
-     or EXTR_PREFIX_INVALID. If the prefixed result is not a valid variable
-     name, it is not imported into the symbol table.
-    </para>
-    <para>
-     <function>extract</function> returns the number of variables successfully
-     imported into the symbol table.
-    </para>
-    <para>
-     A possible use for extract is to import into symbol table
-     variables contained in an associative array returned by
-     <function>wddx_deserialize</function>.
-    </para>
-    <para>
-     <example>
-      <title><function>Extract</function> example</title>
-      <programlisting role="php">
-&lt;?php
-
-/* Suppose that $var_array is an array returned from
-   wddx_deserialize */
-
-$size = "large";
-$var_array = array ("color" =&gt; "blue",
-                    "size"  =&gt; "medium",
-                    "shape" =&gt; "sphere");
-extract ($var_array, EXTR_PREFIX_SAME, "wddx");
-
-print "$color, $size, $shape, $wddx_size\n";
-
-?>
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     The above example will produce:
-     <programlisting>
-blue, large, sphere, medium
-     </programlisting>
-    </para>
-    <para>
-     The <varname>$size</varname> wasn't overwritten, becaus we
-     specified EXTR_PREFIX_SAME, which resulted in
-     <varname>$wddx_size</varname> being created.  If EXTR_SKIP was
-     specified, then $wddx_size wouldn't even have been created.
-     EXTR_OVERWRITE would have cause <varname>$size</varname> to have
-     value "medium", and EXTR_PREFIX_ALL would result in new variables
-     being named <varname>$wddx_color</varname>,
-     <varname>$wddx_size</varname>, and
-     <varname>$wddx_shape</varname>.
-    </para>
-    <para>
-     You must use an associative array, a numerically indexed array
-     will not produce results.
-    </para>
-    <para>
-     See also: <function>compact</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.in-array">
-   <refnamediv>
-    <refname>in_array</refname>
-    <refpurpose>Return TRUE if a value exists in an array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>bool in_array</funcdef>
-      <paramdef>mixed <parameter>needle</parameter></paramdef>
-      <paramdef>array <parameter>haystack</parameter></paramdef>
-      <paramdef>bool <parameter>strict</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Searches <parameter>haystack</parameter> for
-     <parameter>needle</parameter> and returns <literal>TRUE</literal> 
-     if it is found in the array, <literal>FALSE</literal> otherwise.
-    </para>
-    <para>
-     If the third parameter <parameter>strict</parameter> is set to
-     <literal>TRUE</literal> then the <function>in_array</function>
-     will also check the types of the <parameter>needle</parameter>
-     in the <parameter>haystack</parameter>.
-    </para>
-    <para>
-     <example>
-      <title><function>In_array</function> example</title>
-      <programlisting role="php">
-$os = array ("Mac", "NT", "Irix", "Linux");
-if (in_array ("Irix", $os)){
-    print "Got Irix";
-    }
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     <example>
-      <title><function>In_array</function> with strict example</title>
-      <programlisting role="php">
-<?php
-$a = array('1.10', 12.4, 1.13);
-
-if (in_array('12.4', $a, TRUE))
-    echo &quot;'12.4' found with strict check\n&quot;;
-if (in_array(1.13, $a, TRUE))
-    echo &quot;1.13 found with strict check\n&quot;;
-?>
-
-// This will output:
-
-1.13 found with strict check
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     See also <function>array_search</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.array-search">
-   <refnamediv>
-    <refname>array_search</refname>
-    <refpurpose>
-     Searches the array for a given value and returns the corresponding key if 
successful
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>mixed <function>array_search</function></funcdef>
-      <paramdef>mixed <parameter>needle</parameter></paramdef>
-      <paramdef>array <parameter>haystack</parameter></paramdef>
-      <paramdef>bool <parameter>strict</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Searches <parameter>haystack</parameter> for
-     <parameter>needle</parameter> and returns the key if it is found in
-     the array, <literal>FALSE</literal> otherwise.
-    </para>
-    <para>
-     If the third parameter <parameter>strict</parameter> is set to
-     <literal>TRUE</literal> then the <function>array_search</function>
-     will also check the types of the <parameter>needle</parameter>
-     in the <parameter>haystack</parameter>.
-    </para>
-    <para>
-     See also <function>in_array</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.key">
-   <refnamediv>
-    <refname>key</refname>
-    <refpurpose>Fetch a key from an associative array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>mixed <function>key</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Key</function> returns the index element of the
-     current array position.
-    </para>
-    <para>
-     See also <function>current</function> and <function>next</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.krsort">
-   <refnamediv>
-    <refname>krsort</refname>
-    <refpurpose>Sort an array by key in reverse order</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>krsort</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>int 
-       <parameter><optional>sort_flags</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Sorts an array by key in reverse order, maintaining key to data
-     correlations. This is useful mainly for associative arrays.
-     <example>
-      <title><function>Krsort</function> example</title>
-      <programlisting role="php">
-$fruits = array ("d"=&gt;"lemon", "a"=&gt;"orange", "b"=&gt;"banana", 
"c"=&gt;"apple");
-krsort ($fruits);
-reset ($fruits);
-while (list ($key, $val) = each ($fruits)) {
-    echo "$key -&gt; $val\n";
-}
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This example would display:
-    </para>
-    <para>
-     <informalexample>
-      <programlisting>
-fruits[d] = lemon
-fruits[c] = apple
-fruits[b] = banana
-fruits[a] = orange
-      </programlisting>
-     </informalexample>
-    </para>
-    <para>
-     You may modify the behavior of the sort using the optional
-     parameter <parameter>sort_flags</parameter>, for details 
-     see <function>sort</function>.
-    </para>
-    <simpara>
-     See also <function>asort</function>, <function>arsort</function>,
-     <function>ksort</function> <function>sort</function>, 
-     <function>natsort</function>and <function>rsort</function>.
-    </simpara>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.ksort">
-   <refnamediv>
-    <refname>ksort</refname>
-    <refpurpose>Sort an array by key</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>ksort</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>int 
-       <parameter><optional>sort_flags</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Sorts an array by key, maintaining key to data correlations. This
-     is useful mainly for associative arrays.
-     <example>
-      <title><function>Ksort</function> example</title>
-      <programlisting role="php">
-$fruits = array ("d"=&gt;"lemon", "a"=&gt;"orange", "b"=&gt;"banana", 
"c"=&gt;"apple");
-ksort ($fruits);
-reset ($fruits);
-while (list ($key, $val) = each ($fruits)) {
-    echo "$key -&gt; $val\n";
-}
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This example would display:
-    </para>
-    <para>
-     <informalexample>
-      <programlisting>
-fruits[a] = orange
-fruits[b] = banana
-fruits[c] = apple
-fruits[d] = lemon
-      </programlisting>
-     </informalexample>     
-    </para>
-    <para>
-     You may modify the behavior of the sort using the optional
-     parameter <parameter>sort_flags</parameter>, for details 
-     see <function>sort</function>.
-    </para>
-    <simpara>
-     See also <function>asort</function>, <function>arsort</function>, 
-     <function>sort</function>, <function>natsort</function>, and 
-     <function>rsort</function>.
-    </simpara>
-    <note>
-     <para>
-      The second parameter was added in PHP 4.
-     </para>
-    </note>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.list">
-   <refnamediv>
-    <refname>list</refname>
-    <refpurpose>
-     Assign variables as if they were an array
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>void <function>list</function></funcdef>
-      <varargs/>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Like <function>array</function>, this is not really a function,
-     but a language construct.  <function>list</function> is used to
-     assign a list of variables in one operation.
-     <example>
-      <title><function>List</function> example</title>
-      <programlisting role="php">
-&lt;table>
- &lt;tr>
-  &lt;th>Employee name&lt;/th>
-  &lt;th>Salary&lt;/th>
- &lt;/tr>
-
-&lt;?php
-
-$result = mysql ($conn, "SELECT id, name, salary FROM employees");
-while (list ($id, $name, $salary) = mysql_fetch_row ($result)) {
-    print (" &lt;tr>\n".
-           "  &lt;td>&lt;a href=\"info.php3?id=$id\">$name&lt;/a>&lt;/td>\n".
-           "  &lt;td>$salary&lt;/td>\n".
-           " &lt;/tr>\n");
-}
-
-?>
-
-&lt;/table>
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     See also <function>each</function> and <function>array</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.natsort">
-   <refnamediv>
-    <refname>natsort</refname>
-    <refpurpose>
-     Sort an array using a "natural order" algorithm
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>void <function>natsort</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function implements a sort algorithm that orders
-     alphanumeric strings in the way a human being would.  This is
-     described as a "natural ordering". An example of the difference
-     between this algorithm and the regular computer string sorting
-     algorithms (used in <function>sort</function>) can be seen below:
-    </para>
-    <para>
-     <example>
-      <title><function>natsort</function> example</title>
-      <programlisting role="php">
-$array1 = $array2 = array ("img12.png","img10.png","img2.png","img1.png");          
-
-sort($array1);
-echo "Standard sorting\n";
-print_r($array1);
-
-natsort($array2);
-echo "\nNatural order sorting\n";
-print_r($array2);
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     The code above will generate the following output:
-    </para>
-    <para>
-     <informalexample>
-      <programlisting>
-Standard sorting
-Array
-(
-    [0] =&gt; img1.png
-    [1] =&gt; img10.png
-    [2] =&gt; img12.png
-    [3] =&gt; img2.png
-)
-
-Natural order sorting
-Array
-(
-    [3] =&gt; img1.png
-    [2] =&gt; img2.png
-    [1] =&gt; img10.png
-    [0] =&gt; img12.png
-)
-      </programlisting>
-     </informalexample>
-     For more infomation see: Martin Pool's <ulink
-     url="&url.strnatcmp;">Natural Order String Comparison</ulink>
-     page.
-    </para>
-    <para>
-     See also <function>natcasesort</function>,
-     <function>strnatcmp</function> and
-     <function>strnatcasecmp</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.natcasesort">
-   <refnamediv>
-    <refname>natcasesort</refname>
-    <refpurpose>
-     Sort an array using a case insensitive "natural order" algorithm
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>void <function>natcasesort</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function implements a sort algorithm that orders
-     alphanumeric strings in the way a human being would.  This is
-     described as a "natural ordering".
-    </para>
-    <para>
-     <function>natcasesort</function> is a case insensitive version of
-     <function>natsort</function>.  See <function>natsort</function>
-     for an example of the difference between this algorithm and the
-     regular computer string sorting algorithms.
-    </para>
-    <para>
-     For more infomation see: Martin Pool's <ulink
-     url="&url.strnatcmp;">Natural Order String Comparison</ulink>
-     page.
-    </para>
-    <para>
-     See also <function>sort</function>,
-     <function>natsort</function>,
-     <function>strnatcmp</function> and
-     <function>strnatcasecmp</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.next">
-   <refnamediv>
-    <refname>next</refname>
-    <refpurpose>
-     Advance the internal array pointer of an array
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>mixed <function>next</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Returns the array element in the next place that's pointed by the
-     internal array pointer, or <literal>FALSE</literal> if 
-     there are no more elements.
-    </para>
-    <para>
-     <function>Next</function> behaves like
-     <function>current</function>, with one difference.  It advances
-     the internal array pointer one place forward before returning the
-     element.  That means it returns the next array element and
-     advances the internal array pointer by one.  If advancing the
-     internal array pointer results in going beyond the end of the
-     element list, <function>next</function> returns <literal>FALSE</literal>.
-     <warning>
-      <para>
-       If the array contains empty elements, or elements that have a key
-       value of 0 then this function will return <literal>FALSE</literal> 
-       for these elements as well.  To properly traverse an array which 
-       may contain empty  elements or elements with key values of 0 see the
-       <function>each</function> function.
-      </para>
-     </warning>
-    </para>
-    <para>
-     See also:
-     <function>current</function>, <function>end</function>,
-     <function>prev</function>, and <function>reset</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.pos">
-   <refnamediv>
-    <refname>pos</refname>
-    <refpurpose>Get the current element from an array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>mixed <function>pos</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <simpara>
-     This is an alias for <function>current</function>.
-    </simpara>
-    <para>
-     See also:
-     <function>end</function>, <function>next</function>,
-     <function>prev</function> and <function>reset</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.prev">
-   <refnamediv>
-    <refname>prev</refname>
-    <refpurpose>Rewind the internal array pointer</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>mixed <function>prev</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Returns the array element in the previous place that's pointed by
-     the internal array pointer, or <literal>FALSE</literal> if there are no more
-     elements.
-     <warning>
-      <para>
-       If the array contains empty elements then this function will
-       return <literal>FALSE</literal> for these elements as well. 
-       To properly traverse an array which may contain empty elements
-       see the <function>each</function> function.
-      </para>
-     </warning>
-    </para>
-    <para>  
-     <function>Prev</function> behaves just like
-     <function>next</function>, except it rewinds the internal array
-     pointer one place instead of advancing it.
-    </para>
-    <para>
-     See also: <function>current</function>, <function>end</function>,
-     <function>next</function>, and <function>reset</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.range">
-   <refnamediv>
-    <refname>range</refname>
-    <refpurpose>
-     Create an array containing a range of integers
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>array <function>range</function></funcdef>
-      <paramdef>int <parameter>low</parameter></paramdef>
-      <paramdef>int <parameter>high</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Range</function> returns an array of integers from
-     <parameter>low</parameter> to <parameter>high</parameter>,
-     inclusive.
-    </para>
-    <para>
-     See <function>shuffle</function> for an example of its use.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.reset">
-   <refnamediv>
-    <refname>reset</refname>
-    <refpurpose>
-     Set the internal pointer of an array to its first element
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>mixed <function>reset</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     <function>Reset</function> rewinds <parameter>array</parameter>'s
-     internal pointer to the first element.
-    </para>
-    <para>
-     <function>Reset</function> returns the value of the first array
-     element.
-    </para>
-    <para>
-     See also: <function>current</function>,
-     <function>each</function>, <function>next</function>,
-     and <function>prev</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.rsort">
-   <refnamediv>
-    <refname>rsort</refname>
-    <refpurpose>Sort an array in reverse order</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>void <function>rsort</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>int 
-       <parameter><optional>sort_flags</optional></parameter>
-      </paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function sorts an array in reverse order (highest to lowest).
-     <example>
-      <title><function>Rsort</function> example</title>
-      <programlisting role="php">
-$fruits = array ("lemon", "orange", "banana", "apple");
-rsort ($fruits);
-reset ($fruits);
-while (list ($key, $val) = each ($fruits)) {
-    echo "$key -&gt; $val\n";
-}
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This example would display:
-    </para>
-    <para>
-     <informalexample>
-      <programlisting>
-fruits[0] = orange
-fruits[1] = lemon
-fruits[2] = banana
-fruits[3] = apple
-      </programlisting>
-     </informalexample>
-    </para>
-    <para>
-     The fruits have been sorted in reverse alphabetical order.
-    </para>
-    <para>
-     You may modify the behavior of the sort using the optional
-     parameter <parameter>sort_flags</parameter>, for details 
-     see <function>sort</function>.
-    </para>
-    <para>
-     See also: <function>arsort</function>,
-     <function>asort</function>, <function>ksort</function>,
-     <function>sort</function>, and <function>usort</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.shuffle">
-   <refnamediv>
-    <refname>shuffle</refname>
-    <refpurpose>Shuffle an array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>void <function>shuffle</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function shuffles (randomizes the order of the elements in)
-     an array. You must use <function>srand</function> to seed this
-     function.
-     <example>
-      <title><function>Shuffle</function> example</title>
-      <programlisting role="php">
-$numbers = range (1,20);
-srand ((double)microtime()*1000000);
-shuffle ($numbers);
-while (list (, $number) = each ($numbers)) {
-    echo "$number ";
-}
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     See also <function>arsort</function>, <function>asort</function>,
-     <function>ksort</function>, <function>rsort</function>,
-     <function>sort</function> and <function>usort</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.sizeof">
-   <refnamediv>
-    <refname>sizeof</refname>
-    <refpurpose>Get the number of elements in an array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>sizeof</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     Returns the number of elements in the array.
-    </para>
-    <para>
-     See also <function>count</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.sort">
-   <refnamediv>
-    <refname>sort</refname>
-    <refpurpose>Sort an array</refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>void <function>sort</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>int <parameter><optional>sort_flags</optional></parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function sorts an array.  Elements will be arranged from
-     lowest to highest when this function has completed.
-     <example>
-      <title><function>Sort</function> example</title>
-    <programlisting role="php">
-&lt;?php
-
-$fruits = array ("lemon", "orange", "banana", "apple");
-sort ($fruits);
-reset ($fruits);
-while (list ($key, $val) = each ($fruits)) {
-    echo "fruits[".$key."] = ".$val; 
-}
- 
-?&gt;
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This example would display:
-    </para>
-    <para>
-     <informalexample>
-      <programlisting>
-fruits[0] = apple
-fruits[1] = banana
-fruits[2] = lemon
-fruits[3] = orange
-      </programlisting>
-     </informalexample>
-    </para>
-    <para>
-     The fruits have been sorted in alphabetical order.
-    </para>
-    <para>
-     The optional second parameter <parameter>sort_flags</parameter>
-     may be used to modify the sorting behavior using theese valies:
-    </para>
-    <para>
-     Sorting type flags:
-     <itemizedlist>
-      <listitem>
-       <simpara>SORT_REGULAR - compare items normally</simpara>
-      </listitem>
-      <listitem>
-       <simpara>SORT_NUMERIC - compare items numerically</simpara>
-      </listitem>
-      <listitem>
-       <simpara>SORT_STRING - compare items as strings</simpara>
-      </listitem>
-     </itemizedlist>
-    </para>
-    <para>
-     See also: <function>arsort</function>,
-     <function>asort</function>, <function>ksort</function>,
-     <function>natsort</function>, <function>natcasesort</function>,
-     <function>rsort</function>, <function>usort</function>,
-     <function>array_multisort</function>, and <function>uksort</function>.
-    </para>
-    <note>
-     <para>
-      The second parameter was added in PHP 4.
-     </para>
-    </note>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.uasort">
-   <refnamediv>
-    <refname>uasort</refname>
-    <refpurpose>
-     Sort an array with a user-defined comparison function and
-     maintain index association
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>void <function>uasort</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>function <parameter>cmp_function</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function sorts an array such that array indices maintain
-     their correlation with the array elements they are associated
-     with.  This is used mainly when sorting associative arrays where
-     the actual element order is significant.  The comparison function
-     is user-defined.
-    </para>
-    <note>
-     <para>
-      Please see <function>usort</function> and
-      <function>uksort</function> for examples of user-defined
-      comparison functions.
-     </para>
-    </note>
-    <para>
-     See also: <function>usort</function>, <function>uksort</function>, 
-     <function>sort</function>, <function>asort</function>, 
-     <function>arsort</function>, <function>ksort</function> 
-     and <function>rsort</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.uksort">
-   <refnamediv>
-    <refname>uksort</refname>
-    <refpurpose>
-     Sort an array by keys using a user-defined comparison function
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>void <function>uksort</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>function <parameter>cmp_function</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function will sort the keys of an array using a
-     user-supplied comparison function.  If the array you wish to sort
-     needs to be sorted by some non-trivial criteria, you should use
-     this function.
-    </para>
-    <para>
-     <example>
-      <title><function>Uksort</function> example</title>
-      <programlisting role="php">
-function cmp ($a, $b) {   
-    if ($a == $b) return 0;
-    return ($a > $b) ? -1 : 1;
-}
-
-$a = array (4 =&gt; "four", 3 =&gt; "three", 20 =&gt; "twenty", 10 =&gt; "ten");
-
-uksort ($a, "cmp");
-
-while (list ($key, $value) = each ($a)) {
-    echo "$key: $value\n";
-}
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This example would display:
-    </para>
-    <para>
-     <informalexample>
-      <programlisting>
-20: twenty
-10: ten
-4: four
-3: three
-      </programlisting>
-     </informalexample>
-    </para>
-    <para>
-     See also: <function>usort</function>, <function>uasort</function>, 
-     <function>sort</function>, <function>asort</function>, 
-     <function>arsort</function>, <function>ksort</function>,
-     <function>natsort</function> and <function>rsort</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.usort">
-   <refnamediv>
-    <refname>usort</refname>
-    <refpurpose>
-     Sort an array by values using a user-defined comparison function
-    </refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>void <function>usort</function></funcdef>
-      <paramdef>array <parameter>array</parameter></paramdef>
-      <paramdef>string <parameter>cmp_function</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    <para>
-     This function will sort an array by its values using a
-     user-supplied comparison function.  If the array you wish to sort
-     needs to be sorted by some non-trivial criteria, you should use
-     this function.
-    </para>
-    <para>
-     The comparison function must return an integer less than, equal
-     to, or greater than zero if the first argument is considered to
-     be respectively less than, equal to, or greater than the
-     second. If two members compare as equal, their order in the
-     sorted array is undefined.
-    </para>
-    <para>
-     <example>
-      <title><function>Usort</function> example</title>
-      <programlisting role="php">
-function cmp ($a, $b) {   
-    if ($a == $b) return 0;
-    return ($a > $b) ? -1 : 1;
-}
-
-$a = array (3, 2, 5, 6, 1);
-
-usort ($a, "cmp");
-
-while (list ($key, $value) = each ($a)) {
-    echo "$key: $value\n";
-}
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     This example would display:
-    </para>
-    <para>
-     <informalexample>
-      <programlisting>
-0: 6
-1: 5
-2: 3
-3: 2
-4: 1
-      </programlisting>
-     </informalexample>
-    </para>
-    <note>
-     <para>
-      Obviously in this trivial case the <function>rsort</function>
-      function would be more appropriate.
-     </para>
-    </note>
-    <para>
-     <example>
-      <title>
-       <function>Usort</function> example using multi-dimensional array
-      </title>
-      <programlisting role="php">
-function cmp ($a, $b) {
-    return strcmp($a["fruit"],$b["fruit"]);
-} 
-
-$fruits[0]["fruit"] = "lemons";
-$fruits[1]["fruit"] = "apples";
-$fruits[2]["fruit"] = "grapes";
-
-usort($fruits, "cmp"); 
-
-while (list ($key, $value) = each ($fruits)) {
-    echo "\$fruits[$key]: " . $value["fruit"] . "\n";
-}
-      </programlisting>
-     </example>
-    </para>
-    <para>
-     When sorting a multi-dimensional array, $a and $b contain
-     references to the first index of the array.
-    </para>
-    <para>
-     This example would display:
-    </para>
-    <para>
-     <informalexample>
-      <programlisting>
-$fruits[0]: apples
-$fruits[1]: grapes
-$fruits[2]: lemons
-      </programlisting>
-     </informalexample>
-    </para>
-    <para>
-     <warning>
-      <para>
-       The underlying quicksort function in some C libraries (such as
-       on Solaris systems) may cause PHP to crash if the comparison
-       function does not return consistent values.
-      </para>
-     </warning>
-    </para>
-    <para>
-     See also: <function>uasort</function>, <function>uksort</function>, 
-     <function>sort</function>, <function>asort</function>,
-     <function>arsort</function>,<function>ksort</function>,
-     <function>natsort</function>, and <function>rsort</function>.
-    </para>
-   </refsect1>
-  </refentry>
-
- </reference>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
--->
+<reference id="ref.array">
+       <title>배열함수</title>
+       <titleabbrev>배열</titleabbrev>
+       <partintro>
+               <simpara>
+       이 함수는 다양한 방법으로 배열을 다루고, 상호작용할 수 
+있게 해 준다.
+       배열은 변수들의 집합을 소팅, 처리, 조정하는데 
+필수적이다.
+   </simpara>
+               <simpara>
+       일차원및 다차원 배열의 사용이 가능하며, 사용자나 다른 
+함수로 부터 생성될 수 있다.
+       데이터베이스의 쿼리문으로 부터 배열의 생성을 위한 몇몇 
+특별한 데이터베이스 핸들링 함수가 있고 몇몇 함수들은 
+리턴값으로 배열을 반환한다.
+   </simpara>
+               <para>
+                       <function>is_array</function>, <function>explode</function>, 
+    <function>implode</function>, <function>split</function> 
+    그리고 <function>join</function>을 참조하라.
+   </para>
+       </partintro>
+       <refentry id="function.array">
+               <refnamediv>
+                       <refname>array</refname>
+                       <refpurpose>
+    배열을 생성한다
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array <function>array</function>
+                                       </funcdef>
+                                       <paramdef>mixed 
+       <parameter>
+                                                       <optional>...</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+       파라미터의 배열을 반환한다. 
+파라미터는<literal>=&gt;</literal> 연산자를 가진 인덱스로 주어질 
+수도 있다.
+    </para>
+                       <para>
+                               <note>
+                                       <para>
+                                               <function>Array</function> is a 
+language construct used to
+       represent literal arrays, and not a regular function.
+      </para>
+                               </note>
+                       </para>
+                       <para>
+        "index =&gt; values" 구문은 comma(,)로 구분되며, 인덱스와 값을 
+정의한다.
+       인덱스값으로는 문자형 혹은 숫자형이 쓰인다. 인덱스 
+값이 생략되었 을 경우 
+       정수 0으로 시작되는 인덱스가 자동으로 생성된다. 
+인덱스가 정수라면  
+       다음에 생성되는 인덱스는 (가장 큰 인덱스값 + 1) 의 값이 
+된다.
+       두개의 동일한 인덱스가 정의되었을 경우, 마지막 값이 
+처음 값을 덮어쓰게 됨을 유의하라.
+    </para>
+                       <para>
+       다음의 예는 2차원 배열을 생성하는 방법과, associative 
+배열에 키(key)값을 지정하는 방법
+       , 숫자 인덱스가 배열에서 어떤 규칙으로 생성 되는지를 
+설명한다.
+     <example>
+                                       <title>
+                                               <function>Array</function> 
+example</title>
+                                       <programlisting role="php">
+$fruits = array (
+    "fruits"  =&gt; array ("a"=&gt;"orange", "b"=&gt;"banana", "c"=&gt;"apple"),
+    "numbers" =&gt; array (1, 2, 3, 4, 5, 6),
+    "holes"   =&gt; array ("first", 5 =&gt; "second", "third")
+);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array</function>함수에서 
+인덱스의 자동생성
+                                       </title>
+                                       <programlisting role="php">
+$array = array( 1, 1, 1, 1,  1, 8=>1,  4=>1, 19, 3=>13);
+print_r($array);
+      </programlisting>
+                               </example>
+     다음을 출력할 것이다. : 
+     <informalexample>
+                                       <programlisting>
+Array
+(
+    [0] => 1
+    [1] => 1
+    [2] => 1
+    [3] => 13
+    [4] => 1
+    [8] => 1
+    [9] => 19
+)
+      </programlisting>
+                               </informalexample>
+       인덱스 '3'에 대해 값이 두번 정의되었으며, 인덱스 '3'에 
+해당하는 최종 값은 마지막에 정의된 13이 된다. 
+       인덱스 '4'가 정의된 후에 인덱스 '8' 이 정의되었고 다음에 
+생성된 인덱스(값 19를 가진다)는 
+       가장 큰 인덱스 값이 8이었으므로 9가 된다는 점을 
+유의하라.
+    </para>
+                       <para>
+       일차원 배열 생성의 예.
+     <example>
+                                       <title>
+                                               <function>Array</function>에서의 
+1차원배열 인덱스
+                                       </title>
+                                       <programlisting role="php">
+        $firstquarter  = array(1 => 'January', 'February', 'March');
+        print_r($firstquarter);
+      </programlisting>
+                               </example>
+      다음을 출력할 것이다. : 
+     <informalexample>
+                                       <programlisting>
+Array 
+(
+    [1] => 'January'
+    [2] => 'February'
+    [3] => 'March'
+)
+      </programlisting>
+                               </informalexample>
+                       </para>
+                       <para>
+                               <function>list</function>를 참고하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-count-values">
+               <refnamediv>
+                       <refname>array_count_values</refname>
+                       <refpurpose>배열 값의 수를 센다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array 
+<function>array_count_values</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>input</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_count_values</function> 는 
+<parameter>input</parameter> 배열의 값을
+                                키로 갖고 그 값들의 빈도를 값으로 
+갖는 배열을 반환한다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               
+<function>Array_count_values</function>예</title>
+                                       <programlisting role="php">
+$array = array (1, "hello", 1, "world", "hello");
+array_count_values ($array); //  array (1=&gt;2, "hello"=&gt;2, "world"=&gt;1) 을 
+반환한다.
+      </programlisting>
+                               </example>
+                       </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-diff">
+               <refnamediv>
+                       <refname>array_diff</refname>
+                       <refpurpose>배열의 차이을 계산한다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array <function>array_diff</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array1</parameter>
+                                       </paramdef>
+                                       <paramdef>array <parameter>array2</parameter>
+                                       </paramdef>
+                                       <paramdef>array
+       <parameter>
+                                                       <optional> ...</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_diff</function>는 인수로 온 
+<parameter>array1</parameter>이외의 
+                                배열의 값과 중복되지 않는 
+<parameter>array1</parameter>의 값을 포함하는 배열을 반환한다.
+                               키(keys)는 보존됨에 유의하라.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_diff</function> 
+예</title>
+                                       <programlisting role="php">
+$array1 = array ("a" =&gt; "green", "red", "blue");
+$array2 = array ("b" =&gt; "green", "yellow", "red");
+$result = array_diff ($array1, $array2);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+                               <varname>$result</varname> 가 <literal>array 
+("blue");</literal>를 가지게 된다.
+                       </para>
+                       <para>
+                               <function>array_intersect</function>을 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-flip">
+               <refnamediv>
+                       <refname>array_flip</refname>
+                       <refpurpose>Flip all the values of an array</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array <function>array_flip</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>trans</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_flip</function> returns an array in 
+flip order.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_flip</function> 
+example</title>
+                                       <programlisting role="php">
+$trans = array_flip ($trans);
+$original = strtr ($str, $trans);
+      </programlisting>
+                               </example>
+                       </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-intersect">
+               <refnamediv>
+                       <refname>array_intersect</refname>
+                       <refpurpose>배열의 중복을 계산한다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array 
+<function>array_intersect</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array1</parameter>
+                                       </paramdef>
+                                       <paramdef>array <parameter>array2</parameter>
+                                       </paramdef>
+                                       <paramdef>array
+       <parameter>
+                                                       <optional> ...</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_intersect</function>는 인수로 온 
+모든 배열에 존재하는 <parameter>array1</parameter>의 값을 모두 
+포함하는 배열을 반환한다. 
+                               키는 보존됨을 유의하라.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_intersect</function> 
+예</title>
+                                       <programlisting role="php">
+$array1 = array ("a" =&gt; "green", "red", "blue");
+$array2 = array ("b" =&gt; "green", "yellow", "red");
+$result = array_intersect ($array1, $array2);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+                               <varname>$result</varname>는 <literal>array ("a"
+     =&gt; "green", "red");</literal>이 된다.
+                       </para>
+                       <para>
+                               <function>array_diff</function>를 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-keys">
+               <refnamediv>
+                       <refname>array_keys</refname>
+                       <refpurpose>배열의 모든 키값을 
+반환한다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array <function>array_keys</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>input</parameter>
+                                       </paramdef>
+                                       <paramdef>mixed
+       <parameter>
+                                                       
+<optional>search_value</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_keys</function> 는 
+<parameter>input</parameter> 배열로 부터 숫자형과 문자형의 키를 
+배열로 반환한다.
+    </para>
+                       <para>
+     옵션인 <parameter>search_value</parameter>이 지정된다면, 그 값을 
+가지는 키만이 반환되고 생략되면 <parameter>input</parameter> 의 모든 
+키가 배열로 반환된다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_keys</function> 
+예</title>
+                                       <programlisting role="php">
+$array = array (0 =&gt; 100, "color" =&gt; "red");
+array_keys ($array);       // array (0, "color") 을 반환한다.
+
+$array = array ("blue", "red", "green", "blue", "blue");
+array_keys ($array, "blue");  //  array (0, 3, 4) 을 반환한다.
+      </programlisting>
+                               </example>
+                       </para>
+                       <note>
+                               <para>
+      이 함수는 PHP 4에서 추가되었으며, 아래는 여전히 PHP3을 
+사용하는 사용자를 위한 이 함수의 구현부분이다.
+      <example>
+                                               <title>
+    PHP 3 사용자들을 위한 <function>array_keys</function>의 구현
+       </title>
+                                               <programlisting role="php">
+function array_keys ($arr, $term="") {
+    $t = array();
+    while (list($k,$v) = each($arr)) {
+        if ($term &amp;&amp; $v != $term)
+            continue;
+            $t[] = $k;
+        }
+        return $t;
+}
+       </programlisting>
+                                       </example>
+                               </para>
+                       </note>
+                       <para>
+                               <function>array_values</function>을 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-merge">
+               <refnamediv>
+                       <refname>array_merge</refname>
+                       <refpurpose>두개 혹은 그 이상의 배열을 
+병합한다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array <function>array_merge</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array1</parameter>
+                                       </paramdef>
+                                       <paramdef>array <parameter>array2</parameter>
+                                       </paramdef>
+                                       <paramdef>array
+       <parameter>
+                                                       <optional>...</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_merge</function> 는 두개 혹은 그 
+이상의 배열을 병합하며, 
+                               값은 이전 배열의 끝에 붙어 추가된다. 
+그 결과를 배열로 반환한다.
+    </para>
+                       <para>
+       만약 입력된 배열이 같은 문자열 키를 가진다면, 그 키에 
+대해 나중에 온 값이 이전의 값을 대체한다. 
+       그러나 입력된 배열이 같은 숫자 키를 가진다면, 나중 값이 
+처음값을 대체하지 않고 나중 값은 배열의 뒤에 추가가 된다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>array_merge</function> 
+예</title>
+                                       <programlisting role="php">
+$array1 = array ("color" =&gt; "red", 2, 4);
+$array2 = array ("a", "b", "color" =&gt; "green", "shape" =&gt; "trapezoid", 4);
+array_merge ($array1, $array2);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     결과로 나타나는 배열은 <literal>array("color" =&gt; "green", 2, 4,
+     "a", "b", "shape" =&gt; "trapezoid", 4)</literal>이 된다.
+    </para>
+                       <para>
+                               <function>array_merge_recursive</function>을 
+참고하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-merge-recursive">
+               <refnamediv>
+                       <refname>array_merge_recursive</refname>
+                       <refpurpose>재귀적으로 두개 혹은 그 이상의 
+배열을 병합한다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array 
+<function>array_merge_recursive</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array1</parameter>
+                                       </paramdef>
+                                       <paramdef>array <parameter>array2</parameter>
+                                       </paramdef>
+                                       <paramdef>array
+       <parameter>
+                                                       <optional>...</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_merge_recursive</function> 는 두개 
+이상의 배열 요소를 병합하여 값을 이전 배열에 추가하고 이를 
+배열로 반환한다. 
+    </para>
+                       <para>
+       입력된 배열에 같은 문자열 키가 있으면, 이 키는 배열로 
+합쳐지고 이는 재귀적으로 진행된다. 
+       배열을 값으로 갖는 경우 같은 방식으로 각 값의 배열을 
+병합한다.
+       그러나 배열이 같은 숫자 키를 가진다면 동일 숫자키에 
+값을 덮어쓰는 것이 아니라 이전 배열의 뒤에 추가 된다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               
+<function>Array_merge_recursive</function> 예</title>
+                                       <programlisting role="php">
+$ar1 = array ("color" =&gt; array ("favorite" =&gt; "red"), 5);
+$ar2 = array (10, "color" =&gt; array ("favorite" =&gt; "green", "blue"));
+$result = array_merge_recursive ($ar1, $ar2);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+                               <literal>array ("color" =&gt; array
+     ("favorite" =&gt; array ("red", "green"), "blue"), 5, 10)</literal>의 결과를 
+갖는다.
+    </para>
+                       <para>
+                               <function>array_merge</function>를 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-multisort">
+               <refnamediv>
+                       <refname>array_multisort</refname>
+                       <refpurpose>여러개의 배열 혹은 다차원 배열을 
+정렬한다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>bool 
+<function>array_multisort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>ar1</parameter>
+                                       </paramdef>
+                                       <paramdef>mixed
+       <parameter>
+                                                       <optional>arg</optional>
+                                               </parameter>
+                                       </paramdef>
+                                       <paramdef>mixed
+       <parameter>
+                                                       <optional>...</optional>
+                                               </parameter>
+                                       </paramdef>
+                                       <paramdef>array
+       <parameter>
+                                                       <optional>...</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_multisort</function> 는 다중 
+배열에 대해서 여러개의 배열을 한번에 정렬하거나 다차원 
+배열에서 내부에 포함되는 가가각의 배열을 정렬하는데 
+사용된다.
+                               정렬될 때 키값도 유지된다.
+                       </para>
+                       <para>
+                       입력된 배열은 행에 의해 정렬하는 테이블의 
+열과도 같이 생각할 수 있다. - 이는 SQL의 ORDER BY절과 그 기능이 
+유사하다.
+                       첫번째 오는 배열이 먼저 정렬 된다. 배열의 
+행(값)
+                                            </para>
+                       <para>
+       이 함수의 매개변수 구조는 약간 독특하지만, 유연하다.
+       처음의 매개변수는 배열이어야 하며, 다음에 나오는 
+각각의 매개변수는 
+       배열이거나 혹은 다음의 글래그 리스트에 있는 정렬 
+플래그일 수 있다.
+    </para>
+                       <para>
+     정렬 방법 플래그:
+     <itemizedlist>
+                                       <listitem>
+                                               <simpara>SORT_ASC - 오름차순으로 
+정렬</simpara>
+                                       </listitem>
+                                       <listitem>
+                                               <simpara>SORT_DESC - 
+내림차순으로 정렬</simpara>
+                                       </listitem>
+                               </itemizedlist>
+                       </para>
+                       <para>
+     정렬 형태 플래그:
+     <itemizedlist>
+                                       <listitem>
+                                               <simpara>SORT_REGULAR - 
+통상적으로 아이템을 비교</simpara>
+                                       </listitem>
+                                       <listitem>
+                                               <simpara>SORT_NUMERIC - 수치로서 
+아이템을 정렬</simpara>
+                                       </listitem>
+                                       <listitem>
+                                               <simpara>SORT_STRING - 문자열로서 
+아이템을 정렬</simpara>
+                                       </listitem>
+                               </itemizedlist>
+                       </para>
+                       <para>
+       각각의 배열에는 같은 타입의 정렬 플래그 두개가 지정될 
+수 없다.
+       배열 매개변수에 명기된 정렬 플래그는 단지 그 배열에만 
+적용된다
+       - 이는 새로운 배열이 매개변수로 오기 전에 기본값인 
+SORT_ASC와
+       SORT_REGULAR 로 리셋된다.
+    </para>
+                       <para>
+       성공시에 참을 반환하며, 실패시에 거짓을 반환한다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>Sorting multiple arrays</title>
+                                       <programlisting role="php">
+$ar1 = array ("10", 100, 100, "a");
+$ar2 = array (1, 3, "2", 1);
+array_multisort ($ar1, $ar2);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+       예를 들어, 정렬 후에 처음 배열은 10,"a",100,100 을 포함한다.
+       두번째 배열은 1,1,2,"3" 을 포함한다.
+       첫번째 배열의 각각의 엔트리(100 과 100)와 대응되는 
+       두번째 배열의 엔트리 또한 정렬된다. 
+       The entries in the second array corresponding to the identical
+     entries in the first array (100 and 100) were sorted as well.
+    </para>
+                       <para>
+                               <example>
+                                       <title>다차원 배열의 정렬</title>
+                                       <programlisting role="php">
+$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
+array_multisort ($ar[0], SORT_ASC, SORT_STRING, 
+                 $ar[1], SORT_NUMERIC, SORT_DESC);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+       이 예에서 정렬 후 처음 배열은 10, 100, 100, "a"(이는 
+문자열로 
+       처리되어 오름차순으로 정렬.), 그리고 두번째 배열은
+       1, 3, "2", 1 (숫자로 처리되어 내림차순으로 정렬)을 갖는다.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-pad">
+               <refnamediv>
+                       <refname>array_pad</refname>
+                       <refpurpose>
+     주어진 값의 길이만큼 배열을 채운다
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array <function>array_pad</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>input</parameter>
+                                       </paramdef>
+                                       <paramdef>int <parameter>pad_size</parameter>
+                                       </paramdef>
+                                       <paramdef>mixed 
+<parameter>pad_value</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_pad</function> returns a copy of the
+                       <parameter>pad_value</parameter>의 값으로 
+<parameter>pad_size</parameter> 길이만큼 채워진 
+<parameter>input</parameter>배열의 복사본을 반환한다.
+                           <parameter>pad_size</parameter> 가 양의 값이면, 
+배열의 오른쪽이 채워지고, 음수라면, 왼쪽이 채워진다.
+                            <parameter>pad_size</parameter> 값이 
+<parameter>input</parameter> 배열의 길이보다 작거나 같다면, 
+패딩(padding)은 일어나지 않는다.
+                   </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_pad</function> 
+예</title>
+                                       <programlisting role="php">
+$input = array (12, 10, 9);
+
+$result = array_pad ($input, 5, 0);
+// 결과는 array (12, 10, 9, 0, 0) 이다.
+
+$result = array_pad ($input, -7, -1);
+// 결과는 array (-1, -1, -1, -1, 12, 10, 9) 이다.
+
+$result = array_pad ($input, 2, "noop");
+// pad 되지 않는다.
+      </programlisting>
+                               </example>
+                       </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-pop">
+               <refnamediv>
+                       <refname>array_pop</refname>
+                       <refpurpose>배열 끝의 요소를 뽑아낸다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>mixed <function>array_pop</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_pop</function> 은  
+<parameter>array</parameter>의 마지막 값을 뽑아 내고 그 값을 
+반환하며, <parameter>array</parameter>의 길이를 원소 하나만큼 줄인다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_pop</function> 
+예</title>
+                                       <programlisting role="php">
+$stack = array ("orange", "apple", "raspberry");
+$fruit = array_pop ($stack);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     이 이후, <varname>$stack</varname> 은 "orange" 와 "apple" 단 2개의 
+원소만 가진다:
+    <varname>$fruit</varname> 는 "raspberry" 의 값을 갖는다.
+    </para>
+                       <para>
+                               <function>array_push</function>,
+     <function>array_shift</function>, 그리고
+     <function>array_unshift</function> 을 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-push">
+               <refnamediv>
+                       <refname>array_push</refname>
+                       <refpurpose>
+       배열 끝에 하나 혹은 그 이상의 원소를 넣는다.
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>int <function>array_push</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>mixed <parameter>var</parameter>
+                                       </paramdef>
+                                       <paramdef>mixed
+       <parameter>
+                                                       <optional>...</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_push</function> 는 
+<parameter>array</parameter> 을 스택과 같이 다루며, 
+<parameter>array</parameter>의 끝에 전달되어진 값을 집어 넣는다.
+                               <parameter>array</parameter>의 길이는 
+집어넣어진 값들의 수만큼 늘어나며 다음과 같은 효과가 있다.
+                            <programlisting role="php"/>
+                            반복되는 각각의 <parameter>var</parameter>에 
+대해
+                               $array[] = $var;
+                   </para>
+                       <para>
+                    배열에 새로 추가된 원소의 수가 반환된다.
+                       </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_push</function> 
+예</title>
+                                       <programlisting role="php">
+$stack = array (1, 2);
+array_push ($stack, "+", 3);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+               이 예에서 <varname>$stack</varname>은 4개의 
+원소(1,2,"+",3)를 갖는 배열이 된다. 
+                   </para>
+                       <para>
+                               <function>array_pop</function>,
+                            <function>array_shift</function>, 
+                       <function>array_unshift</function>을 참조하라.
+                   </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-rand">
+               <refnamediv>
+                       <refname>array_rand</refname>
+                       <refpurpose>
+                       배열에서 하나 혹은 그 이상의 임의의 원소를 
+가져온다. 
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>mixed <function>array_rand</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>input</parameter>
+                                       </paramdef>
+                                       <paramdef>int
+       <parameter>
+                                                       <optional>num_req</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_rand</function>은 배열의 요소중 
+임의로 하나 혹은 여러개의 원소를 가져올 때 유용하다.
+                               <parameter>input</parameter> 배열을 필요로 
+하고, 선택 인자로 <parameter>num_req</parameter>이 올 수 있는데,
+                               뽑아내고 싶은 엘리먼트의 수를 지정할 
+수 있고 특별히 지정되지 않았을 때의 기본 값은 1이다.
+                   </para>
+                       <para>
+                       단지 하나의 원소만 가져오면, 
+<function>array_rand</function>는 임의 원소에 대한 키를 반환하며, 
+임의의 여러 원소를 가져올 경우 각각의 임의 원소에 대한 키의 
+배열을 반환한다.
+                       이렇게 함으로서 배열에서 부터 임의로 값 
+뿐만 아니라 키를 가져 올 수 있다.
+                   </para>
+                       <para>
+               난수 생성자(rand number generator)를 만들기 
+위해<function>srand</function> 함수를 호출하는것을 잊지 마라.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_rand</function> 
+예</title>
+                                       <programlisting role="php">
+srand ((double) microtime() * 10000000);
+$input = array ("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
+$rand_keys = array_rand ($input, 2);
+print $input[$rand_keys[0]]."\n";
+print $input[$rand_keys[1]]."\n";
+      </programlisting>
+                               </example>
+                       </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-reverse">
+               <refnamediv>
+                       <refname>array_reverse</refname>
+                       <refpurpose>
+       각 엘리먼트를 역순으로 정렬한 배열을 반환한다.
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array 
+<function>array_reverse</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_reverse</function>는 입력으로 
+     <parameter>array</parameter> 를 가지며 엘리먼트들이 
+     역순으로 정렬된 새로운 배열을 반환한다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_reverse</function> 
+예</title>
+                                       <programlisting role="php">
+$input = array ("php", 4.0, array ("green", "red"));
+$result = array_reverse ($input);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     이 예는 <varname>$result</varname> 가 <literal>array
+     (array ("green", "red"), 4.0, "php")</literal>를 가진다..
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-shift">
+               <refnamediv>
+                       <refname>array_shift</refname>
+                       <refpurpose>
+       배열의 맨 앞에 있는 원소를 꺼내고 그 원소를 삭제한다
+       </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>mixed <function>array_shift</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_shift</function> 는 
+<parameter>array</parameter>의 
+                               첫번째 값을 꺼내고 그 꺼낸 값을 
+반환하며, <parameter>array</parameter>의 
+                               첫번째 엘리먼트를 삭제하고 다른 모든 
+엘리먼트를 한칸 앞으로 이동시킨다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_shift</function> 
+예</title>
+                                       <programlisting role="php">
+$args = array ("-v", "-f");
+$opt = array_shift ($args);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+       이는  <varname>$args</varname> 가 "-f" 의 엘리먼트를 갖고, 
+        <varname>$opt</varname>는 "-v"의 값을 갖는다.
+    </para>
+                       <para>
+                               <function>array_unshift</function>,
+     <function>array_push</function>, 그리고
+     <function>array_pop</function>를 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-slice">
+               <refnamediv>
+                       <refname>array_slice</refname>
+                       <refpurpose>배열의 일부를 추출한다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array <function>array_slice</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>int <parameter>offset</parameter>
+                                       </paramdef>
+                                       <paramdef>int
+       <parameter>
+                                                       <optional>length</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_slice</function> 는 일련의 
+엘리먼트를 
+       <parameter>offset</parameter> and <parameter>length</parameter>의 
+       매개변수에 따라 <parameter>array</parameter> 로부터 반환한다.
+    </para>
+                       <para>
+       만약 <parameter>offset</parameter>이 양의 값이면, 시퀀스는
+       <parameter>array</parameter>의 숫자에 해당하는 옵셋(offset)에서 
+부터
+       시작한다. 만약 <parameter>offset</parameter>이 음의 값이라면,
+       시퀀스는 <parameter>array</parameter>의 끝에서부터 그 수마큼 
+       떨어진 곳에서 부터 시작한다.
+    </para>
+                       <para>
+       만약 <parameter>length</parameter>이 주어지고 양의 값이라면,
+       시퀀스는 그 수만큼의 엘리먼트가 될 것이다.
+       만약 <parameter>length</parameter>가 주어지고 음의 값이라면,
+       시퀀스는 배열의 끝에서 부터 그 갯수만큼의 엘리먼트가 
+될 것이다.
+       생략이 된다면, 시퀀스는 <parameter>offset</parameter>에서부터
+       <parameter>array</parameter> 끝까지의 엘리먼트를 모두 가지게 
+된다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_slice</function> 
+예</title>
+                                       <programlisting role="php">
+$input = array ("a", "b", "c", "d", "e");
+
+$output = array_slice ($input, 2);      // "c", "d", 그리고 "e" 를 반환한다.
+$output = array_slice ($input, 2, -1);  //  "c", "d" 를 반환한다.
+$output = array_slice ($input, -2, 1);  //  "d" 를 반환한다.
+$output = array_slice ($input, 0, 3);   //  "a", "b", 그리고 "c" 를 반환한다.
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+                               <function>array_splice</function>를 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-splice">
+               <refnamediv>
+                       <refname>array_splice</refname>
+                       <refpurpose>
+     배열의 일부를 삭제하고, 그 위치에 다른 내용을 끼워 
+넣는다.
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array 
+<function>array_splice</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>input</parameter>
+                                       </paramdef>
+                                       <paramdef>int <parameter>offset</parameter>
+                                       </paramdef>
+                                       <paramdef>int
+       <parameter>
+                                                       <optional>length</optional>
+                                               </parameter>
+                                       </paramdef>
+                                       <paramdef>array
+       <parameter>
+                                                       
+<optional>replacement</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_splice</function>는 
+<parameter>input</parameter>
+       배열로 부터 <parameter>offset</parameter> 와 
+<parameter>length</parameter>로 정해진
+       엘린먼트를 삭제하고, <parameter>replacement</parameter>배열이 
+제공된다면  
+       이를 제공된 배열으리 엘리먼트로 대체시킨다.
+    </para>
+                       <para>
+       만약 <parameter>offset</parameter>이 양의 값이라면, 
+       삭제 부분의 시작은 <parameter>input</parameter> 배열의 
+       처음 부터 그 해당하는 옵셋까지이다.
+       만약 <parameter>offset</parameter>이 음의 값이라면,
+       <parameter>input</parameter> 배열의 끝에서 부터 옵셋만큼 떨어진
+       곳에서 부터 시작된다.
+    </para>
+                       <para>
+       만약 <parameter>length</parameter>이 생략되면,
+       <parameter>offset</parameter>에서부터 배열의 끝까지의 모든 
+       엘리먼트를 삭제한다.
+       만약 <parameter>length</parameter>가 정의되고 양의 값을 
+갖는다면,
+       그 수 만큼의 엘리먼트가 삭제된다.
+       <parameter>length</parameter>가 정의되고 음의 값을 갖는다면,
+       삭제되는 부분의 끝이 배열의 끝에서부터의 숫자가 된다. 
+       팁: <parameter>replacement</parameter>가 지정되어 있을 때,
+       <parameter>offset</parameter>에서부터 배열의 끝까지의 
+       모든 엘리먼트를 삭제하려면, <parameter>length</parameter>대신
+       <literal>count($input)</literal>을 사용하라.
+    </para>
+                       <para>
+                               <parameter>replacement</parameter> 배열이 
+지정되어 있으면, 
+       삭제된 엘리먼트는 이 배열의 엘리먼트로 대체된다.
+       
+     If <parameter>replacement</parameter> array is specified, then
+     the removed elements are replaced with elements from this array.
+     If <parameter>offset</parameter> and
+     <parameter>length</parameter> are such that nothing is removed,
+     then the elements from the <parameter>replacement</parameter>
+     array are inserted in the place specified by the
+     <parameter>offset</parameter>. Tip: if the replacement is just
+     one element it is not necessary to put <literal>array()</literal>
+     around it, unless the element is an array itself.
+    </para>
+                       <para>
+     The following equivalences hold:
+     <programlisting>
+array_push ($input, $x, $y)     array_splice ($input, count ($input), 0, 
+                                             array ($x, $y))
+array_pop ($input)              array_splice ($input, -1)
+array_shift ($input)            array_splice ($input, 0, 1)
+array_unshift ($input, $x, $y)  array_splice ($input, 0, 0, array ($x, $y))
+$a[$x] = $y                     array_splice ($input, $x, 1, $y)
+     </programlisting>
+                       </para>
+                       <para>
+     Returns the array consisting of removed elements.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_splice</function> 
+examples</title>
+                                       <programlisting role="php">
+$input = array ("red", "green", "blue", "yellow");
+
+array_splice ($input, 2);      // $input is now array ("red", "green")
+array_splice ($input, 1, -1);  // $input is now array ("red", "yellow")
+array_splice ($input, 1, count($input), "orange");  
+                               // $input is now array ("red", "orange")
+array_splice ($input, -1, 1, array("black", "maroon")); 
+                               // $input is now array ("red", "green", 
+                               //          "blue", "black", "maroon")
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     See also <function>array_slice</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-unique">
+               <refnamediv>
+                       <refname>array_unique</refname>
+                       <refpurpose>배열로부터 중복된 값을 
+제거한다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array 
+<function>array_unique</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_unique</function> 는 입력으로 
+                       <parameter>array</parameter>를 출력으로는 중복된 
+값이 없는 
+                       배열을 반환한다.
+                       키값은 보존됨을 유의하라.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_unique</function> 
+예</title>
+                                       <programlisting role="php">
+$input = array ("a" =&gt; "green", "red", "b" =&gt; "green", "blue", "red");
+$result = array_unique ($input);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+                               <varname>$result</varname> 는 <literal>array ("a" 
+=&gt;
+     "green", "red", "blue");</literal>의 값을 가지는 결과가 된다.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-unshift">
+               <refnamediv>
+                       <refname>array_unshift</refname>
+                       <refpurpose>
+     배열의 맨 앞에 한 개나 그 이상의 원소를 첨가한다.
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>int <function>array_unshift</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>mixed <parameter>var</parameter>
+                                       </paramdef>
+                                       <paramdef>mixed
+       <parameter>
+                                                       <optional>...</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_unshift</function> 는 
+<parameter>array</parameter> 의
+       앞에 전달되어진 원소를 첨가한다.
+       원소의 목록은 전체적으로 프리펜드되고, 그 결과 
+프리펜드된 원소는 
+       동일한 순서로 남아있게 된다.
+                               <function>Array_unshift</function> prepends passed 
+elements to
+     the front of the <parameter>array</parameter>. Note that the list
+     of elements is prepended as a whole, so that the prepended
+     elements stay in the same order.
+    </para>
+                       <para>
+                               <parameter>array</parameter> 의 새로운 원소의 
+수를 반환한다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_unshift</function> 
+예</title>
+                                       <programlisting role="php">
+$queue = array ("p1", "p3");
+array_unshift ($queue, "p4", "p5", "p6");
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+                               <varname>$queue</varname> 가 
+       "p4", "p5", "p6", "p1", and "p3",  5개의 원소를 갖는 결과가 된다.
+    </para>
+                       <para>
+                               <function>array_shift</function>,
+     <function>array_push</function>, 그리고
+     <function>array_pop</function>를 참고하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-values">
+               <refnamediv>
+                       <refname>array_values</refname>
+                       <refpurpose>배열의 모든 값들을 
+반환한다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array 
+<function>array_values</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>input</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Array_values</function> 는 
+               <parameter>input</parameter> 배열의 모든 값들을 반환한다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_values</function> 
+예</title>
+                                       <programlisting role="php">
+$array = array ("size" =&gt; "XL", "color" =&gt; "gold");
+array_values ($array);    // returns array ("XL", "gold")
+      </programlisting>
+                               </example>
+                       </para>
+                       <note>
+                               <para>
+       이 함수는 PHP 4 에서 추가되었고, 다음은 PHP3에서의 
+구현이다. 
+      <example>
+                                               <title>
+    PHP 3 사용자를 위한<function>array_values</function> 의 구현
+       </title>
+                                               <programlisting role="php">
+function array_values ($arr) {
+    $t = array();
+    while (list($k, $v) = each ($arr)) {
+        $t[] = $v;
+        return $t;
+    }
+}
+       </programlisting>
+                                       </example>
+                               </para>
+                       </note>
+               </refsect1>
+       </refentry>
+       <refentry id="function.array-walk">
+               <refnamediv>
+                       <refname>array_walk</refname>
+                       <refpurpose>
+     배열의 개개의 원소에 특정 함수를 적용하여 수행한다.
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>int <function>array_walk</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>arr</parameter>
+                                       </paramdef>
+                                       <paramdef>string <parameter>func</parameter>
+                                       </paramdef>
+                                       <paramdef>mixed <parameter>userdata</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <simpara>
+       함수 <parameter>func</parameter> 을 <parameter>arr</parameter>의
+       각각의 원소에 적용한다.
+       <parameter>func</parameter> 에 배열 값이 첫번째 인자로,
+       배열 키다 두번째 인자로 전달된다.
+       <parameter>userdata</parameter>가 주어지면 이는 함수의 세번째 
+인자로 
+       전달된다.
+    </simpara>
+                       <simpara>
+                               <parameter>func</parameter> 이 두개 혹은 3개 
+이상의 매개변수가 필요하면, 
+       <parameter>userdata</parameter> 에 따라서
+       <function>array_walk</function>이 <parameter>func</parameter>를 
+       호출할 때마다 매번 경고가 발생한다.
+       이런 경고는 <function>array_walk</function> 에 '@' 기호를 
+덧붙이거나
+       <function>error_reporting</function> 를 사용함으로서 은폐될 수 
+있다.
+    </simpara>
+                       <note>
+                               <para>
+                                       <parameter>func</parameter>이 실제 
+값으로 동작할 필요가 있다면,
+       <parameter>func</parameter>의 첫번째 매개변수는 참조에 의한 
+       전달이 되어야 한다.
+       그러면, 원소에 가해진 모든 변화가 배열 자체에 반영된다.
+     </para>
+                       </note>
+                       <note>
+                               <para>
+       키와 userdata 를 <parameter>func</parameter>에 전달하는 것은
+       4.0 에서 추가되었다.
+     </para>
+                               <para>
+       PHP 4 에서는 <function>reset</function> 의 호출이 필수적으로 
+필요하다.
+       왜냐하면, <function>array_walk</function> 는 기본적으로 배열을 
+리셋
+       시키지 않기 때문이다.
+     </para>
+                       </note>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Array_walk</function> 
+예</title>
+                                       <programlisting role="php">
+$fruits = array ("d"=&gt;"lemon", "a"=&gt;"orange", "b"=&gt;"banana", 
+"c"=&gt;"apple");
+
+function test_alter (&amp;$item1, $key, $prefix) {
+    $item1 = "$prefix: $item1";
+}
+
+function test_print ($item2, $key) {
+    echo "$key. $item2&lt;br&gt;\n";
+}
+
+array_walk ($fruits, 'test_print');
+reset ($fruits);
+array_walk ($fruits, 'test_alter', 'fruit');
+reset ($fruits);
+array_walk ($fruits, 'test_print');
+      </programlisting>
+                               </example>
+                       </para>
+                       <simpara>
+                               <function>each</function> 그리고 
+<function>list</function>를 참고하라.
+    </simpara>
+               </refsect1>
+       </refentry>
+       <refentry id="function.arsort">
+               <refnamediv>
+                       <refname>arsort</refname>
+                       <refpurpose>
+     배열을 역순으로 정렬하고 인덱스의 상관관계를 유지한다.
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>arsort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>int 
+       <parameter>
+                                                       <optional>sort_flags</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+       이 함수는 배열의 인덱스가 그 배열의 원소와 상관관계를 
+유지해야 하는
+       배열을 역순으로 정렬한다. 이 함수는 주로 실제 원소의 
+정렬이 중요한 
+       상관배열을 정렬할 경우 이용된다.
+     <example>
+                                       <title>
+                                               <function>Arsort</function> 예</title>
+                                       <programlisting role="php">
+$fruits = array ("d"=&gt;"lemon", "a"=&gt;"orange", "b"=&gt;"banana", 
+"c"=&gt;"apple");
+arsort ($fruits);
+reset ($fruits);
+while (list ($key, $val) = each ($fruits)) {
+    echo "$key = $val\n";
+}
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+       이 예는 다음을 출력할 것이다:
+    </para>
+                       <para>
+                               <informalexample>
+                                       <programlisting>
+fruits[a] = orange
+fruits[d] = lemon
+fruits[b] = banana
+fruits[c] = apple
+      </programlisting>
+                               </informalexample>
+                       </para>
+                       <para>
+       fruits 가 알파벳 반대순서로 정렬되고, 각각의 원소와 
+상관되는 인덱스는
+       유지되었다.
+    </para>
+                       <para>
+       옵션 매개변수 <parameter>sort_flags</parameter>로 정렬방법을 
+       수정할 수 있으며, 상세한 정보는 <function>sort</function>를 
+참조하라.
+    </para>
+                       <para>
+                               <function>asort</function>, <function>rsort</function>,
+     <function>ksort</function>, 그리고 <function>sort</function>를 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.asort">
+               <refnamediv>
+                       <refname>asort</refname>
+                       <refpurpose>배열을 정렬하고 index association을 
+유지한다. </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>asort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>int <parameter>
+                                                       <optional>sort_flags</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+       이 함수는 배열의 인덱스가 그 배열의 원소와 상관관계를 
+유지해야 하는
+       배열을 정렬한다. 이 함수는 주로 실제 원소의 정렬이 
+중요한 
+       상관배열을 정렬할 경우 이용된다.
+     <example>
+                                       <title>
+                                               <function>Asort</function> 예</title>
+                                       <programlisting role="php">
+$fruits = array ("d"=&gt;"lemon", "a"=&gt;"orange", "b"=&gt;"banana", 
+"c"=&gt;"apple");
+asort ($fruits);
+reset ($fruits);
+while (list ($key, $val) = each ($fruits)) {
+    echo "$key = $val\n";
+}
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     이 예제의 결과는 다음과 같다:
+    </para>
+                       <para>
+                               <informalexample>
+                                       <programlisting>
+fruits[c] = apple
+fruits[b] = banana
+fruits[d] = lemon
+fruits[a] = orange
+      </programlisting>
+                               </informalexample>
+                       </para>
+                       <para>
+       
+     fruits 가 알파벳 순서로 정렬되고, 각각의 원소와 상관되는 
+인덱스는
+       유지되었다.
+    </para>
+                       <para>
+       옵션 매개변수 <parameter>sort_flags</parameter>로 정렬방법을 
+       수정할 수 있으며, 상세한 정보는 <function>sort</function>를 
+참조하라.
+    </para>
+                       <para>
+                               <function>arsort</function>, 
+<function>rsort</function>,
+     <function>ksort</function>, 그리고 <function>sort</function>를 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.compact">
+               <refnamediv>
+                       <refname>compact</refname>
+                       <refpurpose>
+    주어진 여러 변수의 이름과 값을 가지는 배열을 만든다.
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array <function>compact</function>
+                                       </funcdef>
+                                       <paramdef>mixed <parameter>varname</parameter>
+                                       </paramdef>
+                                       <paramdef>mixed
+       <parameter>
+                                                       <optional>...</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Compact</function> 는 다양한 수의 
+매개변수를 갖는다.
+       각각 매개변수는 변수의 이름을 포함하는 문자열이 될 
+수도 있고,
+       변수 이름의 배열이 될 수도 있다.
+       배열은 그 안에 변수 이름의 배열을 포함할 수 도 있다.
+       <function>compact</function> 는 이 매개변수를 재귀적으로 다룬다.
+    </para>
+                       <para>
+       이런 각각의 경우에, <function>compact</function> 는 
+       기존 심볼 테이블에서 그 이름에 해당하는 변수를 찾아 
+출력하는 배열에 
+       추가해서, 변수 명이 키가 되고 변수의 내용이 그 키의 
+값이 되는 배열을 
+       반환한다.
+       간단히 말해, <function>extract</function>의 반대 이다.
+       이 함수는 추가된 모든 변수를 가지는 배열을 반환한다.
+    </para>
+                       <para>
+       지정되지 않은 문자열은 단순히 간과된다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Compact</function> 
+예</title>
+                                       <programlisting role="php">
+$city = "San Francisco";
+$state = "CA";
+$event = "SIGGRAPH";
+
+$location_vars = array ("city", "state");
+
+$result = compact ("event", "nothing_here", $location_vars);
+      </programlisting>
+                                       <para>
+       코드 실행 후, <varname>$result</varname> 는  <literal>array ("event"
+       =&gt; "SIGGRAPH", "city" =&gt; "San Francisco", "state" =&gt; 
+"CA")</literal>이 될 것이다.
+      </para>
+                               </example>
+                       </para>
+                       <para>
+                               <function>extract</function> 를 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.count">
+               <refnamediv>
+                       <refname>count</refname>
+                       <refpurpose>배열 변수의 원소 개수를 
+구한다.</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>int <function>count</function>
+                                       </funcdef>
+                                       <paramdef>mixed <parameter>var</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+       배열 <parameter>var</parameter>의 원소의 갯수를 반환하는데,
+       <parameter>var</parameter>는 대게 배열이다.(왜냐하면, 그 왜의 
+다른것은 
+       하나의 트만 가질 것이기 때문이다.)
+    </para>
+                       <para>
+       배열이 아닌 변수라면 1을 반환한다.
+    </para>
+                       <para>
+       변수가 선언 되지 않았다면 0을 반환한다.
+     <warning>
+                                       <para>
+                                               <function>Count</function> 는 
+선언되지 않은 변수에 대해 0을 반환하겠지만,
+       원소가 없는 배열로 초기화된 변수도 0을 반환한다.
+       변수가 선언되었는지를 알기 위해 <function>isset</function>를 
+사용하라.
+      </para>
+                               </warning>
+                       </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Count</function> 예</title>
+                                       <programlisting role="php">
+$a[0] = 1; 
+$a[1] = 3; 
+$a[2] = 5; 
+$result = count ($a);
+//$result 는 2가 아닌 3이다. 왜냐하면, 3개의 할당된 원소가 있기 
+때문이다.
+
+$a[2] = 1; 
+$a[4] = ""; 
+$a[6] = 5;
+$a[8] = 7;
+$a[10] = 11;
+$a[12] = "";
+$result = count ($a);
+// 4개의 할당된 원소가 있으므로  $result 의 값은  4 이다.
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+                               <function>sizeof</function>,
+     <function>isset</function>, 그리고
+     <function>is_array</function>를 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.current">
+               <refnamediv>
+                       <refname>current</refname>
+                       <refpurpose>배열의 현재 원소를 
+돌려준다</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>mixed <function>current</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+       가각의 배열은 현재 원소를 가리키는 내부포인터를 갖는데,
+       이 내부 포인터는 배열에 삽입되어진 첫번째 원소에서 
+초기화된다.
+    </para>
+                       <para>
+       <function>current</function> 함수는 단순히 내부 포인터에 의해
+       지시되는 현재의 원소를 반환한다.
+       이 함수는 포인터를 어떠한 방법으로든 이동시키지 않는다.
+       내부 포인터가 원소 목록의 범위를 넘어선 곳을 지시하면,
+       <function>current</function> 는 거짓(false)를 반환한다.
+     <warning>
+                                       <para> 
+       배열이 가지는 원소가 하나도 없다면 (0 이거나 "", 
+빈문자열)
+       이 함수는 이 원소들에 대해서도 거짓(false)를 반환한다.
+       이때문에 지금 사용중인 <function>current</function> 배열에서
+       정말 리스트의 끝에 있는지 아니면 빈 배열인지를 
+구분하기 어렵다.
+       배열이 원소가 없는 빈 배열인지를 알맞게 검토하기 
+위해서는 
+       <function>each</function> 함수를 사용하라.
+      </para>
+                               </warning>
+                       </para>
+                       <para>
+     <function>end</function>, <function>next</function>,
+     <function>prev</function>, 그리고 <function>reset</function>를 참조하라.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.each">
+               <refnamediv>
+                       <refname>each</refname>
+                       <refpurpose>
+       배열로부터 다음원소의 키와 값 쌍을 반환한다.
+     Return the next key and value pair from an array
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array <function>each</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+       <parameter>array</parameter> 배열에서 다음 key/value 쌍을 반환한다.
+       이 쌍은 네 개의 원소를 가진 배열로 반환되는데 이 네 
+개의 원소의 key는 
+       <emphasis>0</emphasis>, <emphasis>1</emphasis>,
+     <emphasis>key</emphasis>, 그리고 <emphasis>value</emphasis>
+       이다.
+       <emphasis>0</emphasis> 과 <emphasis>key</emphasis>
+       원소는 각각 변수의 key 이름을 가지고, 
+       <emphasis>1</emphasis> 과 <emphasis>value</emphasis>는
+       그 값을 가지고 있다. 
+    </para>
+                       <para>
+       만약 그 배열에 해당하는 내부 포인터가 배열의 범위를 
+지나면,
+       <function>each</function>는 거짓(false)를 반환한다.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Each</function> 예</title>
+                                       <programlisting role="php">
+$foo = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
+$bar = each ($foo);
+      </programlisting>
+                                       <para>
+                                               <varname>$bar</varname> 는 다음의 
+키(key)/값(value) 쌍을 갖는다.
+       pairs:
+       <itemizedlist spacing="compact">
+                                                       <listitem>
+                                                               <simpara>0 =&gt; 
+0</simpara>
+                                                       </listitem>
+                                                       <listitem>
+                                                               <simpara>1 =&gt; 
+'bob'</simpara>
+                                                       </listitem>
+                                                       <listitem>
+                                                               <simpara>key =&gt; 
+0</simpara>
+                                                       </listitem>
+                                                       <listitem>
+                                                               <simpara>value =&gt; 
+'bob'</simpara>
+                                                       </listitem>
+                                               </itemizedlist>
+                                               <programlisting role="php">
+$foo = array ("Robert" =&gt; "Bob", "Seppo" =&gt; "Sepi");
+$bar = each ($foo);
+       </programlisting>
+                                       </para>
+                                       <para>
+                                               <varname>$bar</varname> 는 다음의 
+키(key)/값(value) 쌍을 갖는다.
+       <itemizedlist spacing="compact">
+                                                       <listitem>
+                                                               <simpara>0 =&gt; 
+'Robert'</simpara>
+                                                       </listitem>
+                                                       <listitem>
+                                                               <simpara>1 =&gt; 
+'Bob'</simpara>
+                                                       </listitem>
+                                                       <listitem>
+                                                               <simpara>key =&gt; 
+'Robert'</simpara>
+                                                       </listitem>
+                                                       <listitem>
+                                                               <simpara>value =&gt; 
+'Bob'</simpara>
+                                                       </listitem>
+                                               </itemizedlist>
+                                       </para>
+                               </example>
+                       </para>
+                       <para>
+       <function>Each</function> 는 대체로  배열을 검토하기 위해
+       <function>list</function> 와 함께 쓰인다; 예를 들면
+       <varname>$HTTP_POST_VARS</varname>: 
+     <example>
+                                       <title>
+       Traversing <varname>$HTTP_POST_VARS</varname> with
+       <function>each</function>
+                                       </title>
+                                       <programlisting role="php">
+echo "Values submitted via POST method:&lt;br&gt;";
+reset ($HTTP_POST_VARS);
+while (list ($key, $val) = each ($HTTP_POST_VARS)) {
+    echo "$key =&gt; $val&lt;br&gt;";
+}
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     After <function>each</function> has executed, the array cursor
+     will be left on the next element of the array, or on the last
+     element if it hits the end of the array.
+    </para>
+                       <para>
+     See also <function>key</function>, <function>list</function>,
+     <function>current</function>, <function>reset</function>,
+     <function>next</function>, and <function>prev</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.end">
+               <refnamediv>
+                       <refname>end</refname>
+                       <refpurpose>
+     Set the internal pointer of an array to its last element
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>mixed <function>end</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>End</function> advances 
+<parameter>array</parameter>'s
+     internal pointer to the last element, and returns that element.
+    </para>
+                       <para>
+     See also: <function>current</function>,
+     <function>each</function>, <function>end</function>,
+     <function>next</function>, and <function>reset</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.extract">
+               <refnamediv>
+                       <refname>extract</refname>
+                       <refpurpose>
+     Import variables into the symbol table from an array
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>extract</function>
+                                       </funcdef>
+                                       <paramdef>array 
+<parameter>var_array</parameter>
+                                       </paramdef>
+                                       <paramdef>int 
+       <parameter>
+                                                       
+<optional>extract_type</optional>
+                                               </parameter>
+                                       </paramdef>
+                                       <paramdef>string 
+       <parameter>
+                                                       <optional>prefix</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     This function is used to import variables from an array into the
+     current symbol table.  It takes associative array
+     <parameter>var_array</parameter> and treats keys as variable
+     names and values as variable values.  For each key/value pair it
+     will create a variable in the current symbol table, subject to
+     <parameter>extract_type</parameter> and
+     <parameter>prefix</parameter> parameters.
+    </para>
+                       <para>
+                               <function>Extract</function> checks for colissions 
+with existing
+     variables.  The way collisions are treated is determined by
+     <parameter>extract_type</parameter>. It can be one of the
+     following values:
+     <variablelist>
+                                       <varlistentry>
+                                               <term>EXTR_OVERWRITE</term>
+                                               <listitem>
+                                                       <simpara>
+     If there is a collision, overwrite the existing variable.
+    </simpara>
+                                               </listitem>
+                                       </varlistentry>
+                                       <varlistentry>
+                                               <term>EXTR_SKIP</term>
+                                               <listitem>
+                                                       <simpara>
+     If there is a collision, don't overwrite the existing
+     variable.
+    </simpara>
+                                               </listitem>
+                                       </varlistentry>
+                                       <varlistentry>
+                                               <term>EXTR_PREFIX_SAME</term>
+                                               <listitem>
+                                                       <simpara>If there is a 
+collision, prefix the new variable with
+    <parameter>prefix</parameter>.
+    </simpara>
+                                               </listitem>
+                                       </varlistentry>
+                                       <varlistentry>
+                                               <term>EXTR_PREFIX_ALL</term>
+                                               <listitem>
+                                                       <simpara>
+     Prefix all variables with <parameter>prefix</parameter>.
+    </simpara>
+                                               </listitem>
+                                       </varlistentry>
+                               </variablelist>
+                       </para>
+                       <para>
+     If <parameter>extract_type</parameter> is not specified, it is
+     assumed to be EXTR_OVERWRITE.
+    </para>
+                       <para>
+     Note that <parameter>prefix</parameter> is only required if
+     <parameter>extract_type</parameter> is EXTR_PREFIX_SAME or
+     EXTR_PREFIX_ALL.
+    </para>
+                       <para>
+                               <function>Extract</function> checks each key to see if 
+it
+     constitues a valid variable name, and if it does only then does
+     it proceed to import it.
+    </para>
+                       <para>
+     A possible use for extract is to import into symbol table
+     variables contained in an associative array returned by
+     <function>wddx_deserialize</function>.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Extract</function> 
+example</title>
+                                       <programlisting role="php">
+&lt;?php
+
+/* Suppose that $var_array is an array returned from
+   wddx_deserialize */
+
+$size = "large";
+$var_array = array ("color" =&gt; "blue",
+                    "size"  =&gt; "medium",
+                    "shape" =&gt; "sphere");
+extract ($var_array, EXTR_PREFIX_SAME, "wddx");
+
+print "$color, $size, $shape, $wddx_size\n";
+
+?>
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     The above example will produce:
+     <programlisting>
+blue, large, sphere, medium
+     </programlisting>
+                       </para>
+                       <para>
+     The <varname>$size</varname> wasn't overwritten, becaus we
+     specified EXTR_PREFIX_SAME, which resulted in
+     <varname>$wddx_size</varname> being created.  If EXTR_SKIP was
+     specified, then $wddx_size wouldn't even have been created.
+     EXTR_OVERWRITE would have cause <varname>$size</varname> to have
+     value "medium", and EXTR_PREFIX_ALL would result in new variables
+     being named <varname>$wddx_color</varname>,
+     <varname>$wddx_size</varname>, and
+     <varname>$wddx_shape</varname>.
+    </para>
+                       <para>
+     You must use an associative array, a numerically indexed array
+     will not produce results.
+    </para>
+                       <para>
+     See also: <function>compact</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.in-array">
+               <refnamediv>
+                       <refname>in_array</refname>
+                       <refpurpose>Return true if a value exists in an 
+array</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>bool in_array</funcdef>
+                                       <paramdef>mixed <parameter>needle</parameter>
+                                       </paramdef>
+                                       <paramdef>array <parameter>haystack</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     Searches <parameter>haystack</parameter> for
+     <parameter>needle</parameter> and returns true if it is found in
+     the array, false otherwise.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>In_array</function> 
+example</title>
+                                       <programlisting role="php">
+$os = array ("Mac", "NT", "Irix", "Linux");
+if (in_array ("Irix", $os)){
+    print "Got Irix";
+    }
+      </programlisting>
+                               </example>
+                       </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.key">
+               <refnamediv>
+                       <refname>key</refname>
+                       <refpurpose>Fetch a key from an associative array</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>mixed <function>key</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Key</function> returns the index element of 
+the
+     current array position.
+    </para>
+                       <para>
+     See also <function>current</function> and <function>next</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.krsort">
+               <refnamediv>
+                       <refname>krsort</refname>
+                       <refpurpose>Sort an array by key in reverse order</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>int <function>krsort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>int 
+       <parameter>
+                                                       <optional>sort_flags</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     Sorts an array by key in reverse order, maintaining key to data
+     correlations. This is useful mainly for associative arrays.
+     <example>
+                                       <title>
+                                               <function>Krsort</function> 
+example</title>
+                                       <programlisting role="php">
+$fruits = array ("d"=&gt;"lemon", "a"=&gt;"orange", "b"=&gt;"banana", 
+"c"=&gt;"apple");
+krsort ($fruits);
+reset ($fruits);
+while (list ($key, $val) = each ($fruits)) {
+    echo "$key -&gt; $val\n";
+}
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     This example would display:
+    </para>
+                       <para>
+                               <informalexample>
+                                       <programlisting>
+fruits[d] = lemon
+fruits[c] = apple
+fruits[b] = banana
+fruits[a] = orange
+      </programlisting>
+                               </informalexample>
+                       </para>
+                       <para>
+     You may modify the behavior of the sort using the optional
+     parameter <parameter>sort_flags</parameter>, for details 
+     see <function>sort</function>.
+    </para>
+                       <simpara>
+     See also <function>asort</function>, <function>arsort</function>,
+     <function>ksort</function>
+                               <function>sort</function>, 
+     <function>natsort</function>and <function>rsort</function>.
+    </simpara>
+               </refsect1>
+       </refentry>
+       <refentry id="function.ksort">
+               <refnamediv>
+                       <refname>ksort</refname>
+                       <refpurpose>Sort an array by key</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>int <function>ksort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>int 
+       <parameter>
+                                                       <optional>sort_flags</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     Sorts an array by key, maintaining key to data correlations. This
+     is useful mainly for associative arrays.
+     <example>
+                                       <title>
+                                               <function>Ksort</function> 
+example</title>
+                                       <programlisting role="php">
+$fruits = array ("d"=&gt;"lemon", "a"=&gt;"orange", "b"=&gt;"banana", 
+"c"=&gt;"apple");
+ksort ($fruits);
+reset ($fruits);
+while (list ($key, $val) = each ($fruits)) {
+    echo "$key -&gt; $val\n";
+}
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     This example would display:
+    </para>
+                       <para>
+                               <informalexample>
+                                       <programlisting>
+fruits[a] = orange
+fruits[b] = banana
+fruits[c] = apple
+fruits[d] = lemon
+      </programlisting>
+                               </informalexample>
+                       </para>
+                       <para>
+     You may modify the behavior of the sort using the optional
+     parameter <parameter>sort_flags</parameter>, for details 
+     see <function>sort</function>.
+    </para>
+                       <simpara>
+     See also <function>asort</function>, <function>arsort</function>, 
+     <function>sort</function>, <function>natsort</function>, and 
+     <function>rsort</function>.
+    </simpara>
+                       <note>
+                               <para>
+      The second parameter was added in PHP 4.
+     </para>
+                       </note>
+               </refsect1>
+       </refentry>
+       <refentry id="function.list">
+               <refnamediv>
+                       <refname>list</refname>
+                       <refpurpose>
+     Assign variables as if they were an array
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>list</function>
+                                       </funcdef>
+                                       <varargs/>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     Like <function>array</function>, this is not really a function,
+     but a language construct.  <function>list</function> is used to
+     assign a list of variables in one operation.
+     <example>
+                                       <title>
+                                               <function>List</function> 
+example</title>
+                                       <programlisting role="php">
+&lt;table>
+ &lt;tr>
+  &lt;th>Employee name&lt;/th>
+  &lt;th>Salary&lt;/th>
+ &lt;/tr>
+
+&lt;?php
+
+$result = mysql ($conn, "SELECT id, name, salary FROM employees");
+while (list ($id, $name, $salary) = mysql_fetch_row ($result)) {
+    print (" &lt;tr>\n".
+           "  &lt;td>&lt;a href=\"info.php3?id=$id\">$name&lt;/a>&lt;/td>\n".
+           "  &lt;td>$salary&lt;/td>\n".
+           " &lt;/tr>\n");
+}
+
+?>
+
+&lt;/table>
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     See also <function>each</function> and <function>array</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.natsort">
+               <refnamediv>
+                       <refname>natsort</refname>
+                       <refpurpose>
+     Sort an array using a "natural order" algorithm
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>natsort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     This function implements a sort algorithm that orders
+     alphanumeric strings in the way a human being would.  This is
+     described as a "natural ordering". An example of the difference
+     between this algorithm and the regular computer string sorting
+     algorithms (used in <function>sort</function>) can be seen below:
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>natsort</function> 
+example</title>
+                                       <programlisting role="php">
+$array1 = $array2 = array ("img12.png","img10.png","img2.png","img1.png");          
+
+sort($array1);
+echo "Standard sorting\n";
+print_r($array1);
+
+natsort($array2);
+echo "\nNatural order sorting\n";
+print_r($array2);
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     The code above will generate the following output:
+    </para>
+                       <para>
+                               <informalexample>
+                                       <programlisting>
+Standard sorting
+Array
+(
+    [0] =&gt; img1.png
+    [1] =&gt; img10.png
+    [2] =&gt; img12.png
+    [3] =&gt; img2.png
+)
+
+Natural order sorting
+Array
+(
+    [3] =&gt; img1.png
+    [2] =&gt; img2.png
+    [1] =&gt; img10.png
+    [0] =&gt; img12.png
+)
+      </programlisting>
+                               </informalexample>
+     For more infomation see: Martin Pool's <ulink url="&url.strnatcmp;">Natural 
+Order String Comparison</ulink>
+     page.
+    </para>
+                       <para>
+     See also <function>natcasesort</function>,
+     <function>strnatcmp</function> and
+     <function>strnatcasecmp</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.natcasesort">
+               <refnamediv>
+                       <refname>natcasesort</refname>
+                       <refpurpose>
+     Sort an array using a case insensitive "natural order" algorithm
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>natcasesort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     This function implements a sort algorithm that orders
+     alphanumeric strings in the way a human being would.  This is
+     described as a "natural ordering".
+    </para>
+                       <para>
+                               <function>natcasesort</function> is a case insensitive 
+version of
+     <function>natsort</function>.  See <function>natsort</function>
+     for an example of the difference between this algorithm and the
+     regular computer string sorting algorithms.
+    </para>
+                       <para>
+     For more infomation see: Martin Pool's <ulink url="&url.strnatcmp;">Natural 
+Order String Comparison</ulink>
+     page.
+    </para>
+                       <para>
+     See also <function>sort</function>,
+     <function>natsort</function>,
+     <function>strnatcmp</function> and
+     <function>strnatcasecmp</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.next">
+               <refnamediv>
+                       <refname>next</refname>
+                       <refpurpose>
+     Advance the internal array pointer of an array
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>mixed <function>next</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     Returns the array element in the next place that's pointed by the
+     internal array pointer, or false if there are no more elements.
+    </para>
+                       <para>
+                               <function>Next</function> behaves like
+     <function>current</function>, with one difference.  It advances
+     the internal array pointer one place forward before returning the
+     element.  That means it returns the next array element and
+     advances the internal array pointer by one.  If advancing the
+     internal array pointer results in going beyond the end of the
+     element list, <function>next</function> returns false.
+     <warning>
+                                       <para>
+       If the array contains empty elements, or elements that have a key
+       value of 0 then this function will return false for these elements 
+       as well.  To properly traverse an array which may contain empty 
+       elements or elements with key values of 0 see the
+       <function>each</function> function.
+      </para>
+                               </warning>
+                       </para>
+                       <para>
+     See also:
+     <function>current</function>, <function>end</function>,
+     <function>prev</function>, and <function>reset</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.pos">
+               <refnamediv>
+                       <refname>pos</refname>
+                       <refpurpose>Get the current element from an array</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>mixed <function>pos</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <simpara>
+     This is an alias for <function>current</function>.
+    </simpara>
+                       <para>
+     See also:
+     <function>end</function>, <function>next</function>,
+     <function>prev</function> and <function>reset</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.prev">
+               <refnamediv>
+                       <refname>prev</refname>
+                       <refpurpose>Rewind the internal array pointer</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>mixed <function>prev</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     Returns the array element in the previous place that's pointed by
+     the internal array pointer, or false if there are no more
+     elements.
+     <warning>
+                                       <para>
+       If the array contains empty elements then this function will
+       return false for these elements as well.  To properly traverse
+       an array which may contain empty elements see the
+       <function>each</function> function.
+      </para>
+                               </warning>
+                       </para>
+                       <para>
+                               <function>Prev</function> behaves just like
+     <function>next</function>, except it rewinds the internal array
+     pointer one place instead of advancing it.
+    </para>
+                       <para>
+     See also: <function>current</function>, <function>end</function>,
+     <function>next</function>, and <function>reset</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.range">
+               <refnamediv>
+                       <refname>range</refname>
+                       <refpurpose>
+     Create an array containing a range of integers
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>array <function>range</function>
+                                       </funcdef>
+                                       <paramdef>int <parameter>low</parameter>
+                                       </paramdef>
+                                       <paramdef>int <parameter>high</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Range</function> returns an array of 
+integers from
+     <parameter>low</parameter> to <parameter>high</parameter>,
+     inclusive.
+    </para>
+                       <para>
+     See <function>shuffle</function> for an example of its use.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.reset">
+               <refnamediv>
+                       <refname>reset</refname>
+                       <refpurpose>
+     Set the internal pointer of an array to its first element
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>mixed <function>reset</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+                               <function>Reset</function> rewinds 
+<parameter>array</parameter>'s
+     internal pointer to the first element.
+    </para>
+                       <para>
+                               <function>Reset</function> returns the value of the 
+first array
+     element.
+    </para>
+                       <para>
+     See also: <function>current</function>,
+     <function>each</function>, <function>next</function>,
+     and <function>prev</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.rsort">
+               <refnamediv>
+                       <refname>rsort</refname>
+                       <refpurpose>Sort an array in reverse order</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>rsort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>int 
+       <parameter>
+                                                       <optional>sort_flags</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     This function sorts an array in reverse order (highest to lowest).
+     <example>
+                                       <title>
+                                               <function>Rsort</function> 
+example</title>
+                                       <programlisting role="php">
+$fruits = array ("lemon", "orange", "banana", "apple");
+rsort ($fruits);
+reset ($fruits);
+while (list ($key, $val) = each ($fruits)) {
+    echo "$key -&gt; $val\n";
+}
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     This example would display:
+    </para>
+                       <para>
+                               <informalexample>
+                                       <programlisting>
+fruits[0] = orange
+fruits[1] = lemon
+fruits[2] = banana
+fruits[3] = apple
+      </programlisting>
+                               </informalexample>
+                       </para>
+                       <para>
+     The fruits have been sorted in reverse alphabetical order.
+    </para>
+                       <para>
+     You may modify the behavior of the sort using the optional
+     parameter <parameter>sort_flags</parameter>, for details 
+     see <function>sort</function>.
+    </para>
+                       <para>
+     See also: <function>arsort</function>,
+     <function>asort</function>, <function>ksort</function>,
+     <function>sort</function>, and <function>usort</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.shuffle">
+               <refnamediv>
+                       <refname>shuffle</refname>
+                       <refpurpose>Shuffle an array</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>shuffle</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     This function shuffles (randomizes the order of the elements in)
+     an array. You must use <function>srand</function> to seed this
+     function.
+     <example>
+                                       <title>
+                                               <function>Shuffle</function> 
+example</title>
+                                       <programlisting role="php">
+$numbers = range (1,20);
+srand ((double)microtime()*1000000);
+shuffle ($numbers);
+while (list (, $number) = each ($numbers)) {
+    echo "$number ";
+}
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     See also <function>arsort</function>, <function>asort</function>,
+     <function>ksort</function>, <function>rsort</function>,
+     <function>sort</function> and <function>usort</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.sizeof">
+               <refnamediv>
+                       <refname>sizeof</refname>
+                       <refpurpose>Get the number of elements in an array</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>int <function>sizeof</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     Returns the number of elements in the array.
+    </para>
+                       <para>
+     See also <function>count</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.sort">
+               <refnamediv>
+                       <refname>sort</refname>
+                       <refpurpose>Sort an array</refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>sort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>int <parameter>
+                                                       <optional>sort_flags</optional>
+                                               </parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     This function sorts an array.  Elements will be arranged from
+     lowest to highest when this function has completed.
+     <example>
+                                       <title>
+                                               <function>Sort</function> 
+example</title>
+                                       <programlisting role="php">
+&lt;?php
+
+$fruits = array ("lemon", "orange", "banana", "apple");
+sort ($fruits);
+reset ($fruits);
+while (list ($key, $val) = each ($fruits)) {
+    echo "fruits[".$key."] = ".$val; 
+}
+ 
+?&gt;
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     This example would display:
+    </para>
+                       <para>
+                               <informalexample>
+                                       <programlisting>
+fruits[0] = apple
+fruits[1] = banana
+fruits[2] = lemon
+fruits[3] = orange
+      </programlisting>
+                               </informalexample>
+                       </para>
+                       <para>
+     The fruits have been sorted in alphabetical order.
+    </para>
+                       <para>
+     The optional second parameter <parameter>sort_flags</parameter>
+     may be used to modify the sorting behavior using theese valies:
+    </para>
+                       <para>
+     Sorting type flags:
+     <itemizedlist>
+                                       <listitem>
+                                               <simpara>SORT_REGULAR - compare items 
+normally</simpara>
+                                       </listitem>
+                                       <listitem>
+                                               <simpara>SORT_NUMERIC - compare items 
+numerically</simpara>
+                                       </listitem>
+                                       <listitem>
+                                               <simpara>SORT_STRING - compare items 
+as strings</simpara>
+                                       </listitem>
+                               </itemizedlist>
+                       </para>
+                       <para>
+     See also: <function>arsort</function>,
+     <function>asort</function>, <function>ksort</function>,
+     <function>natsort</function>, <function>natcasesort</function>,
+     <function>rsort</function>, <function>usort</function>,
+     <function>array_multisort</function>, and <function>uksort</function>.
+    </para>
+                       <note>
+                               <para>
+      The second parameter was added in PHP 4.
+     </para>
+                       </note>
+               </refsect1>
+       </refentry>
+       <refentry id="function.uasort">
+               <refnamediv>
+                       <refname>uasort</refname>
+                       <refpurpose>
+     Sort an array with a user-defined comparison function and
+     maintain index association
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>uasort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>function 
+<parameter>cmp_function</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     This function sorts an array such that array indices maintain
+     their correlation with the array elements they are associated
+     with.  This is used mainly when sorting associative arrays where
+     the actual element order is significant.  The comparison function
+     is user-defined.
+    </para>
+                       <note>
+                               <para>
+      Please see <function>usort</function> and
+      <function>uksort</function> for examples of user-defined
+      comparison functions.
+     </para>
+                       </note>
+                       <para>
+     See also: <function>usort</function>, <function>uksort</function>, 
+     <function>sort</function>, <function>asort</function>, 
+     <function>arsort</function>, <function>ksort</function> 
+     and <function>rsort</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.uksort">
+               <refnamediv>
+                       <refname>uksort</refname>
+                       <refpurpose>
+     Sort an array by keys using a user-defined comparison function
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>uksort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>function 
+<parameter>cmp_function</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     This function will sort the keys of an array using a
+     user-supplied comparison function.  If the array you wish to sort
+     needs to be sorted by some non-trivial criteria, you should use
+     this function.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Uksort</function> 
+example</title>
+                                       <programlisting role="php">
+function cmp ($a, $b) {   
+    if ($a == $b) return 0;
+    return ($a > $b) ? -1 : 1;
+}
+
+$a = array (4 =&gt; "four", 3 =&gt; "three", 20 =&gt; "twenty", 10 =&gt; "ten");
+
+uksort ($a, "cmp");
+
+while (list ($key, $value) = each ($a)) {
+    echo "$key: $value\n";
+}
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     This example would display:
+    </para>
+                       <para>
+                               <informalexample>
+                                       <programlisting>
+20: twenty
+10: ten
+4: four
+3: three
+      </programlisting>
+                               </informalexample>
+                       </para>
+                       <para>
+     See also: <function>usort</function>, <function>uasort</function>, 
+     <function>sort</function>, <function>asort</function>, 
+     <function>arsort</function>, <function>ksort</function>,
+     <function>natsort</function> and <function>rsort</function>.
+    </para>
+               </refsect1>
+       </refentry>
+       <refentry id="function.usort">
+               <refnamediv>
+                       <refname>usort</refname>
+                       <refpurpose>
+     Sort an array by values using a user-defined comparison function
+    </refpurpose>
+               </refnamediv>
+               <refsect1>
+                       <title>설명</title>
+                       <funcsynopsis>
+                               <funcprototype>
+                                       <funcdef>void <function>usort</function>
+                                       </funcdef>
+                                       <paramdef>array <parameter>array</parameter>
+                                       </paramdef>
+                                       <paramdef>string 
+<parameter>cmp_function</parameter>
+                                       </paramdef>
+                               </funcprototype>
+                       </funcsynopsis>
+                       <para>
+     This function will sort an array by its values using a
+     user-supplied comparison function.  If the array you wish to sort
+     needs to be sorted by some non-trivial criteria, you should use
+     this function.
+    </para>
+                       <para>
+     The comparison function must return an integer less than, equal
+     to, or greater than zero if the first argument is considered to
+     be respectively less than, equal to, or greater than the
+     second. If two members compare as equal, their order in the
+     sorted array is undefined.
+    </para>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Usort</function> 
+example</title>
+                                       <programlisting role="php">
+function cmp ($a, $b) {   
+    if ($a == $b) return 0;
+    return ($a > $b) ? -1 : 1;
+}
+
+$a = array (3, 2, 5, 6, 1);
+
+usort ($a, "cmp");
+
+while (list ($key, $value) = each ($a)) {
+    echo "$key: $value\n";
+}
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     This example would display:
+    </para>
+                       <para>
+                               <informalexample>
+                                       <programlisting>
+0: 6
+1: 5
+2: 3
+3: 2
+4: 1
+      </programlisting>
+                               </informalexample>
+                       </para>
+                       <note>
+                               <para>
+      Obviously in this trivial case the <function>rsort</function>
+      function would be more appropriate.
+     </para>
+                       </note>
+                       <para>
+                               <example>
+                                       <title>
+                                               <function>Usort</function> example 
+using multi-dimensional array
+      </title>
+                                       <programlisting role="php">
+function cmp ($a, $b) {
+    return strcmp($a["fruit"],$b["fruit"]);
+} 
+
+$fruits[0]["fruit"] = "lemons";
+$fruits[1]["fruit"] = "apples";
+$fruits[2]["fruit"] = "grapes";
+
+usort($fruits, "cmp"); 
+
+while (list ($key, $value) = each ($fruits)) {
+    echo "\$fruits[$key]: " . $value["fruit"] . "\n";
+}
+      </programlisting>
+                               </example>
+                       </para>
+                       <para>
+     When sorting a multi-dimensional array, $a and $b contain
+     references to the first index of the array.
+    </para>
+                       <para>
+     This example would display:
+    </para>
+                       <para>
+                               <informalexample>
+                                       <programlisting>
+$fruits[0]: apples
+$fruits[1]: grapes
+$fruits[2]: lemons
+      </programlisting>
+                               </informalexample>
+                       </para>
+                       <para>
+                               <warning>
+                                       <para>
+       The underlying quicksort function in some C libraries (such as
+       on Solaris systems) may cause PHP to crash if the comparison
+       function does not return consistent values.
+      </para>
+                               </warning>
+                       </para>
+                       <para>
+     See also: <function>uasort</function>, <function>uksort</function>, 
+     <function>sort</function>, <function>asort</function>,
+     <function>arsort</function>,<function>ksort</function>,
+     <function>natsort</function>, and <function>rsort</function>.
+    </para>
+               </refsect1>
+       </refentry>
+</reference>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->

Reply via email to