<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="collator.asort" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>Collator::asort</refname>
  <refname>collator_asort</refname>
  <refpurpose>Sort array maintaining index association</refpurpose>
 </refnamediv>

 <refsect1 role="description">
  &reftitle.description;
  <para>&style.oop;</para>
  <methodsynopsis role="Collator">
   <modifier>public</modifier> <type>bool</type><methodname>Collator::asort</methodname>
   <methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>Collator::SORT_REGULAR</initializer></methodparam>
  </methodsynopsis>
  <para>
   &style.procedural;
  </para>
  <methodsynopsis>
   <type>bool</type><methodname>collator_asort</methodname>
   <methodparam><type>Collator</type><parameter>object</parameter></methodparam>
   <methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>Collator::SORT_REGULAR</initializer></methodparam>
  </methodsynopsis>
  <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. Array elements will have sort order according to current
   locale rules.
  </para>
  <para>
   Equivalent to standard PHP
   <function>asort</function>.
  </para>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>object</parameter></term>
     <listitem>
      <para>
       <classname>Collator</classname> object.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>array</parameter></term>
     <listitem>
      <para>Array of strings to sort.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>flags</parameter></term>
     <listitem>
      <para>
       Optional sorting type, one of the following:
       <itemizedlist>
        <listitem>
         <para>
          <constant>Collator::SORT_REGULAR</constant>
          - compare items normally (don't change types)
         </para>
        </listitem>
        <listitem>
         <para>
          <constant>Collator::SORT_NUMERIC</constant>
          - compare items numerically
         </para>
        </listitem>
        <listitem>
         <para>
          <constant>Collator::SORT_STRING</constant>
          - compare items as strings
         </para>
        </listitem>
       </itemizedlist>
      </para>
      <para>
       Default <parameter>flags</parameter> value is
       <constant>Collator::SORT_REGULAR</constant>.
       It is also used if an invalid <parameter>flags</parameter> value has been specified.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>


 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   &return.success;
  </para>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title><function>collator_asort</function> example</title>
    <programlisting role="php">
<![CDATA[
<?php
$coll = collator_create( 'en_US' );
$arr = array(
     'a' => '100',
     'b' => '50',
     'c' => '7'
);
collator_asort( $coll, $arr, Collator::SORT_NUMERIC );
var_export( $arr );

collator_asort( $coll, $arr, Collator::SORT_STRING );
var_export( $arr );
?>
]]>
    </programlisting>
    &example.outputs;
    <screen>
<![CDATA[
array (
  'c' => '7',
  'b' => '50',
  'a' => '100',
)array (
  'a' => '100',
  'b' => '50',
  'c' => '7',
)
]]>
    </screen>
   </example>
  </para>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><link linkend="intl.collator-constants"><classname>Collator</classname> constants</link></member>
    <member><function>collator_sort</function></member>
    <member><function>collator_sort_with_sort_keys</function></member>
   </simplelist>
  </para>
 </refsect1>
</refentry>
<!-- 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
 indent-tabs-mode:nil
 sgml-parent-document:nil
 sgml-default-dtd-file:"~/.phpdoc/manual.ced"
 sgml-exposed-tags:nil
 sgml-local-catalogs:nil
 sgml-local-ecat-files:nil
 End:
 vim600: syn=xml fen fdm=syntax fdl=2 si
 vim: et tw=78 syn=sgml
 vi: ts=1 sw=1
-->
