Files
php-doc-ru/reference/array/functions/natsort.xml
Andrey Gromov cf5edcf561 --
Provided by anonymous 81924 (lexrulezzz@mail.ru)

git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@342395 c90b9560-bf6c-de11-be94-00142212c4b1
2017-04-20 11:55:40 +00:00

216 lines
5.0 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: 32952c4ddc71070da5c2e0344ef50f5afef08ae1 Maintainer: shein Status: ready -->
<!-- Reviewed: yes -->
<!-- $Revision$ -->
<refentry xml:id="function.natsort" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>natsort</refname>
<refpurpose>Сортирует массив, используя алгоритм "natural order"</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>natsort</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
</methodsynopsis>
<para>
Эта функция реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк
будет привычным для человека. Такой алгоритм называется "natural ordering".
Отличие алгоритма "natural ordering" от обычных алгоритмов сортировки, применяемых,
например, функцией <function>sort</function> можно увидеть в примере ниже.
</para>
&note.sort-unstable;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
Входной массив.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>5.2.10</entry>
<entry>
В строках, отбитых нулями спереди (например, '00005') теперь данная отбивка игнорируется.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Простой пример использования <function>natsort</function></title>
<programlisting role="php">
<![CDATA[
<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");
asort($array1);
echo "Обычная сортировка\n";
print_r($array1);
natsort($array2);
echo "\nСортировка natural order\n";
print_r($array2);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Обычная сортировка
Array
(
[3] => img1.png
[1] => img10.png
[0] => img12.png
[2] => img2.png
)
Сортировка natural order
Array
(
[3] => img1.png
[2] => img2.png
[1] => img10.png
[0] => img12.png
)
]]>
</screen>
<para>
Подробнее смотри статью Martin Pool <link
xlink:href="&url.strnatcmp;">Natural Order String Comparison</link>.
</para>
</example>
<example>
<title>Примеры использования различных трюков с <function>natsort</function></title>
<programlisting role="php">
<![CDATA[
<?php
echo "Отрицательные числа\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);
echo "Отбивка нулями\n";
$zeros = array('09', '8', '10', '009', '011', '0');
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Отрицательные числа
Array
(
[0] => -5
[1] => 3
[2] => -2
[3] => 0
[4] => -1000
[5] => 9
[6] => 1
)
Array
(
[2] => -2
[0] => -5
[4] => -1000
[3] => 0
[6] => 1
[1] => 3
[5] => 9
)
Отбивка нулями
Array
(
[0] => 09
[1] => 8
[2] => 10
[3] => 009
[4] => 011
[5] => 0
)
Array
(
[5] => 0
[1] => 8
[3] => 009
[0] => 09
[2] => 10
[4] => 011
)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>natcasesort</function></member>
<member>&seealso.array.sorting;</member>
<member><function>strnatcmp</function></member>
<member><function>strnatcasecmp</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
-->