(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 1.0.3)
Collator::getSortKey -- collator_get_sort_key — Obtiene la clave de ordenación para una cadena
Estilo orientado a objetos
Estilo procedimental
Devuelve la clave de collation para una cadena. Las claves de collation pueden compararse directamente en lugar de cadenas, no obstante son específicas de la implementación y pueden cambiar entre versiones de la biblioteca ICU. Las claves de ordenación son generalmente útiles solo en bases de datos u otras circunstancias donde las llamadas a funciones son extremadamente costosas.
Devuelve la clave de collation para la cadena, o false
si ocurre un error.
Esta función puede retornar false
, pero también puede retornar un valor equivalente a false
.
Por favor, lea la sección sobre los booleanos para más información.
Utilice el operador ===
para probar el valor de retorno exacto de esta función.
Ejemplo #1 Ejemplo collator_get_sort_key()
<?php
$s1 = 'Hello';
$coll = collator_create('en_US');
$res = collator_get_sort_key($coll, $s1);
echo bin2hex($res);
?>
Resultado del ejemplo anterior es similar a :
Ejemplo #2 Collator::getSortKey() : ejemplo con usort()
<?php
$data = [
[ 'name' => '🇳🇱 Derick Rethans', 'linked_account' => 'https://phpc.social/users/derickr' ],
[ 'name' => 'Elephpant', 'linked_account' => 'https://phpc.social/phpc' ],
[ 'name' => '🇫🇷 Marcus Bointon', 'linked_account' => 'https://phpc.social/users/Synchro' ],
];
/* Crear el collator */
$col = new Collator('en');
/* Ordenar letras mayúsculas antes que minúsculas */
$col->setAttribute(Collator::CASE_FIRST, Collator::UPPER_FIRST);
/* Utilizar una función definida por el usuario con sort, que elimina los emojis */
usort(
$data,
function($a, $b) use ($col) {
/* Eliminar la clase de caracteres 'S' (Símbolos) y los espacios
* (con trim) */
$aName = trim(preg_replace('/\p{S}+/u', '', $a['name']));
$bName = trim(preg_replace('/\p{S}+/u', '', $b['name']));
/* Crear la clave de ordenación */
$aKey = $col->getSortKey($aName);
$bKey = $col->getSortKey($bName);
/* Utilizar la clave de ordenación para determinar el orden de los elementos */
return $aKey <=> $bKey;
}
);
var_dump($data);
?>
Resultado del ejemplo anterior es similar a :