File: strnatcmp.xml

package info (click to toggle)
php-doc 20081024-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 57,752 kB
  • ctags: 3,858
  • sloc: xml: 686,554; php: 19,446; perl: 610; cpp: 500; makefile: 336; sh: 114; awk: 28
file content (147 lines) | stat: -rw-r--r-- 3,895 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.9 $ -->
<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://docbook.org/ns/docbook" xml:id="function.strnatcmp">
 <refnamediv>
  <refname>strnatcmp</refname>
  <refpurpose>String comparisons using a "natural order" algorithm</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>int</type><methodname>strnatcmp</methodname>
   <methodparam><type>string</type><parameter>str1</parameter></methodparam>
   <methodparam><type>string</type><parameter>str2</parameter></methodparam>
  </methodsynopsis>
  <para>
   This function implements a comparison algorithm that orders
   alphanumeric strings in the way a human being would, this is
   described as a "natural ordering".  
   Note that this comparison is case sensitive.
  </para>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>str1</parameter></term>
     <listitem>
      <para>
       The first string.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>str2</parameter></term>
     <listitem>
      <para>
       The second string.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Similar to other string comparison functions, this one returns &lt; 0 if
   <parameter>str1</parameter> is less than <parameter>str2</parameter>; &gt;
   0 if <parameter>str1</parameter> is greater than
   <parameter>str2</parameter>, and 0 if they are equal.
  </para>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   An example of the difference between this algorithm and the regular
   computer string sorting algorithms (used in <function>strcmp</function>)
   can be seen below:
   <informalexample>
    <programlisting role="php">
<![CDATA[
<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Standard string comparison\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nNatural order string comparison\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>
]]>
    </programlisting>
    &example.outputs;
    <screen>
<![CDATA[
Standard string comparison
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Natural order string comparison
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)
]]>
    </screen>
   </informalexample>
   For more information see: Martin Pool's <link
   xlink:href="&url.strnatcmp;">Natural Order String Comparison</link>
   page.
  </para>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>preg_match</function></member>
    <member><function>strcasecmp</function></member>
    <member><function>substr</function></member>
    <member><function>stristr</function></member>
    <member><function>strcmp</function></member>
    <member><function>strncmp</function></member>
    <member><function>strncasecmp</function></member>
    <member><function>strnatcasecmp</function></member>
    <member><function>strstr</function></member>
    <member><function>natsort</function></member>
    <member><function>natcasesort</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:"../../../../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
-->