Current Location: Home> Function Categories> strnatcasecmp

strnatcasecmp

Comparing strings using the Natural Order algorithm (case insensitive)
Name:strnatcasecmp
Category:String
Programming Language:php
One-line Description:Use a "natural sort" algorithm to compare two strings (case-insensitive).

Example

Example 1

Use the "natural" algorithm to compare two strings (case insensitive):

 <span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token keyword">echo</span> <span class="token function">strnatcasecmp</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"2Hello world!"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"10Hello WORLD!"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token function">strnatcasecmp</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"10Hello world!"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"2Hello WORLD!"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span>
<span class="token delimiter important">?></span></span>

Try it yourself

Example 2

Differences between natural algorithms (strnatcmp) and conventional computer string sorting algorithms (strcmp):

 <span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token variable">$arr1</span> <span class="token operator">=</span> <span class="token variable">$arr2</span> <span class="token operator">=</span> <span class="token keyword">array</span> <span class="token punctuation">(</span> <span class="token string double-quoted-string">"pic1"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"pic2"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"pic10"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"pic01"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"pic100"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"pic20"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"pic30"</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"pic200"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"Standard string comparison"</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span>
<span class="token function">usort</span> <span class="token punctuation">(</span> <span class="token variable">$arr1</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"strcmp"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span>

<span class="token function">print_r</span> <span class="token punctuation">(</span> <span class="token variable">$arr1</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span>

<span class="token keyword">echo</span> <span class="token string double-quoted-string">"Natural order string comparison"</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"<br>"</span> <span class="token punctuation">;</span>
<span class="token function">usort</span> <span class="token punctuation">(</span> <span class="token variable">$arr2</span> <span class="token punctuation">,</span> <span class="token string double-quoted-string">"strnatcmp"</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span>

<span class="token function">print_r</span> <span class="token punctuation">(</span> <span class="token variable">$arr2</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span>
<span class="token delimiter important">?></span></span>

Try it yourself