<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.collator.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'en',
  ),
  'this' => 
  array (
    0 => 'collator.getsortkey.php',
    1 => 'Collator::getSortKey',
    2 => 'Get sorting key for a string',
  ),
  'up' => 
  array (
    0 => 'class.collator.php',
    1 => 'Collator',
  ),
  'prev' => 
  array (
    0 => 'collator.getlocale.php',
    1 => 'Collator::getLocale',
  ),
  'next' => 
  array (
    0 => 'collator.getstrength.php',
    1 => 'Collator::getStrength',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    'path' => 'reference/intl/collator/get-sort-key.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="collator.getsortkey" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">Collator::getSortKey</h1>
  <h1 class="refname">collator_get_sort_key</h1>
  <p class="verinfo">(PHP 5 &gt;= 5.3.2, PHP 7, PHP 8, PECL intl &gt;= 1.0.3)</p><p class="refpurpose"><span class="refname">Collator::getSortKey</span> -- <span class="refname">collator_get_sort_key</span> &mdash; <span class="dc-title">Get sorting key for a string</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-collator.getsortkey-description">
  <h3 class="title">Description</h3>
  <p class="para">
   Object-oriented style
  </p>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>Collator::getSortKey</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$string</code></span>): <span class="type"><span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="para rdfs-comment">
   Procedural style
  </p>
  <div class="methodsynopsis dc-description"><span class="methodname"><strong>collator_get_sort_key</strong></span>(<span class="methodparam"><span class="type"><a href="class.collator.php" class="type Collator">Collator</a></span> <code class="parameter">$object</code></span>, <span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$string</code></span>): <span class="type"><span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="para rdfs-comment">
   Return collation key for a string.
   Collation keys can be compared directly instead of strings, though are implementation
   specific and may change between ICU library versions. Sort keys are generally only
   useful in databases or other circumstances where function calls are extremely expensive.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-collator.getsortkey-parameters">
  <h3 class="title">Parameters</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">object</code></dt>
     <dd>
      <p class="para">
       <span class="classname"><a href="class.collator.php" class="classname">Collator</a></span> object.
      </p>
     </dd>
    
    
     <dt><code class="parameter">string</code></dt>
     <dd>
      <p class="para">
       The string to produce the key from.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-collator.getsortkey-returnvalues">
  <h3 class="title">Return Values</h3>
  <p class="para">Returns the collation key for the string,  or <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> on failure.</p>
  <div class="warning"><strong class="warning">Warning</strong><p class="simpara">This function may
return Boolean <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>, but may also return a non-Boolean value which
evaluates to <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>. Please read the section on <a href="language.types.boolean.php" class="link">Booleans</a> for more
information. Use <a href="language.operators.comparison.php" class="link">the ===
operator</a> for testing the return value of this
function.</p></div>
 </div>


 <div class="refsect1 examples" id="refsect1-collator.getsortkey-examples">
  <h3 class="title">Examples</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Example #1 <span class="function"><strong>collator_get_sort_key()</strong></span> example</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$s1 </span><span style="color: #007700">= </span><span style="color: #DD0000">'Hello'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$coll </span><span style="color: #007700">= </span><span style="color: #0000BB">collator_create</span><span style="color: #007700">(</span><span style="color: #DD0000">'en_US'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$res  </span><span style="color: #007700">= </span><span style="color: #0000BB">collator_get_sort_key</span><span style="color: #007700">(</span><span style="color: #0000BB">$coll</span><span style="color: #007700">, </span><span style="color: #0000BB">$s1</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #0000BB">bin2hex</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>The above example will output
something similar to:</p></div>
    <div class="example-contents screen"><br />
     3832404046010901dc08<br />
    </div>
   </div>
  </p>

  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Example #2 <span class="function"><strong>Collator::getSortKey()</strong></span> example with <span class="function"><a href="function.usort.php" class="function">usort()</a></span></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$data </span><span style="color: #007700">= [<br />    [ </span><span style="color: #DD0000">'name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'🇳🇱 Derick Rethans'</span><span style="color: #007700">, </span><span style="color: #DD0000">'linked_account' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'https://phpc.social/users/derickr' </span><span style="color: #007700">],<br />    [ </span><span style="color: #DD0000">'name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Elephpant'</span><span style="color: #007700">, </span><span style="color: #DD0000">'linked_account' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'https://phpc.social/phpc' </span><span style="color: #007700">],<br />    [ </span><span style="color: #DD0000">'name' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'🇫🇷 Marcus Bointon'</span><span style="color: #007700">, </span><span style="color: #DD0000">'linked_account' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'https://phpc.social/users/Synchro' </span><span style="color: #007700">],<br />];<br /><br /></span><span style="color: #FF8000">/* Create the collator */<br /></span><span style="color: #0000BB">$col </span><span style="color: #007700">= new </span><span style="color: #0000BB">Collator</span><span style="color: #007700">(</span><span style="color: #DD0000">'en'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Sort upper-case letters before lower-case letters */<br /></span><span style="color: #0000BB">$col</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setAttribute</span><span style="color: #007700">(</span><span style="color: #0000BB">Collator</span><span style="color: #007700">::</span><span style="color: #0000BB">CASE_FIRST</span><span style="color: #007700">, </span><span style="color: #0000BB">Collator</span><span style="color: #007700">::</span><span style="color: #0000BB">UPPER_FIRST</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Use a user-defined function with sort, that strips out the emojis */<br /></span><span style="color: #0000BB">usort</span><span style="color: #007700">(<br />    </span><span style="color: #0000BB">$data</span><span style="color: #007700">,<br />    function(</span><span style="color: #0000BB">$a</span><span style="color: #007700">, </span><span style="color: #0000BB">$b</span><span style="color: #007700">) use (</span><span style="color: #0000BB">$col</span><span style="color: #007700">) {<br />        </span><span style="color: #FF8000">/* Remove the character class 'S' (the Symbols), and remove whitespace<br />         * (with trim) */<br />        </span><span style="color: #0000BB">$aName </span><span style="color: #007700">= </span><span style="color: #0000BB">trim</span><span style="color: #007700">(</span><span style="color: #0000BB">preg_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">'/\p{S}+/u'</span><span style="color: #007700">, </span><span style="color: #DD0000">''</span><span style="color: #007700">, </span><span style="color: #0000BB">$a</span><span style="color: #007700">[</span><span style="color: #DD0000">'name'</span><span style="color: #007700">]));<br />        </span><span style="color: #0000BB">$bName </span><span style="color: #007700">= </span><span style="color: #0000BB">trim</span><span style="color: #007700">(</span><span style="color: #0000BB">preg_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">'/\p{S}+/u'</span><span style="color: #007700">, </span><span style="color: #DD0000">''</span><span style="color: #007700">, </span><span style="color: #0000BB">$b</span><span style="color: #007700">[</span><span style="color: #DD0000">'name'</span><span style="color: #007700">]));<br /><br />                                </span><span style="color: #FF8000">/* Create the sort key */<br />        </span><span style="color: #0000BB">$aKey </span><span style="color: #007700">= </span><span style="color: #0000BB">$col</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getSortKey</span><span style="color: #007700">(</span><span style="color: #0000BB">$aName</span><span style="color: #007700">);<br />        </span><span style="color: #0000BB">$bKey </span><span style="color: #007700">= </span><span style="color: #0000BB">$col</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getSortKey</span><span style="color: #007700">(</span><span style="color: #0000BB">$bName</span><span style="color: #007700">);<br /><br />                                </span><span style="color: #FF8000">/* Use the sort key to signal which element sorts first */<br />        </span><span style="color: #007700">return </span><span style="color: #0000BB">$aKey </span><span style="color: #007700">&lt;=&gt; </span><span style="color: #0000BB">$bKey</span><span style="color: #007700">;<br />    }<br />);<br /><br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>The above example will output
something similar to:</p></div>
    <div class="example-contents screen"><br />
array(3) {<br />
  [0] =&gt;<br />
  array(2) {<br />
    &#039;name&#039; =&gt;<br />
    string(25) &quot;🇳🇱 Derick Rethans&quot;<br />
    &#039;linked_account&#039; =&gt;<br />
    string(33) &quot;https://phpc.social/users/derickr&quot;<br />
  }<br />
  [1] =&gt;<br />
  array(2) {<br />
    &#039;name&#039; =&gt;<br />
    string(9) &quot;Elephpant&quot;<br />
    &#039;linked_account&#039; =&gt;<br />
    string(24) &quot;https://phpc.social/phpc&quot;<br />
  }<br />
  [2] =&gt;<br />
  array(2) {<br />
    &#039;name&#039; =&gt;<br />
    string(25) &quot;🇫🇷 Marcus Bointon&quot;<br />
    &#039;linked_account&#039; =&gt;<br />
    string(33) &quot;https://phpc.social/users/Synchro&quot;<br />
  }<br />
}<br />
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-collator.getsortkey-seealso">
  <h3 class="title">See Also</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="collator.sort.php" class="function" rel="rdfs-seeAlso">collator_sort()</a> - Sort array using specified collator</span></li>
    <li><span class="function"><a href="collator.sortwithsortkeys.php" class="function" rel="rdfs-seeAlso">collator_sort_with_sort_keys()</a> - Sort array using specified collator and sort keys</span></li>
   </ul>
  </p>
 </div>

</div><?php manual_footer($setup); ?>