1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-28 01:32:09 +01:00
Files
archived-doc-ru/reference/array/functions/array-multisort.xml
Hannes Magnusson 245266cba8 Upgrade to DocBook5:
- All id attributes are now xml:id
 - Add docbook namespace to all root elements
 - Replace <ulink /> with <link xlink:href />
 - Minor markup fixes here and there
 - Bump EN-Revision where appropriate


git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@238337 c90b9560-bf6c-de11-be94-00142212c4b1
2007-06-23 13:31:28 +00:00

133 lines
6.1 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1.4 Maintainer: tronic Status: ready -->
<!-- $Revision: 1.6 $ -->
<!-- splitted from ./en/functions/array.xml, last change in rev 1.11 -->
<refentry xml:id="function.array-multisort" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_multisort</refname>
<refpurpose>Сортировать несколько массивов или многомерные массивы</refpurpose>
</refnamediv>
<refsect1>
<title>Описание</title>
<methodsynopsis>
<type>bool</type><methodname>array_multisort</methodname>
<methodparam><type>array</type><parameter>ar1</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>arg</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<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>
Sorting type flags:
<itemizedlist>
<listitem>
<simpara>SORT_REGULAR - сравнивать элементы обычным образом</simpara>
</listitem>
<listitem>
<simpara>SORT_NUMERIC - сравнивать элементы, как если бы они были числами</simpara>
</listitem>
<listitem>
<simpara>SORT_STRING - сравнивать элементы, как если бы они были строками</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Недопустимым является указание двух флагов сортировки одинакового типа
после каждого массива. Флаги сортировки, переданные после аргумента
<parameter>ar1</parameter>, применяются только к этому аргументу -
перед тем, как функция начнет обрабатывать следующий массив, эти флаги
снова принимают значения по умолчаниюt SORT_ASC и SORT_REGULAR.
</para>
<para>
&return.success;
</para>
<para>
<example>
<title>Сортировка нескольких массивов</title>
<programlisting role="php">
<![CDATA[
$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), также будут отсортированы.
</para>
<para>
<example>
<title>Сортировка многомерного массива</title>
<programlisting role="php">
<![CDATA[
$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>
<!-- 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:"../../../../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
-->