mirror of
https://github.com/php/doc-ru.git
synced 2026-03-28 01:32:09 +01:00
- 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
133 lines
6.1 KiB
XML
133 lines
6.1 KiB
XML
<?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
|
||
-->
|