PHP 8.5.0 Alpha 2 available for testing

Collator::getSortKey

collator_get_sort_key

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 1.0.3)

Collator::getSortKey -- collator_get_sort_keyObtiene la clave de ordenación para una cadena

Descripción

Estilo orientado a objetos

public Collator::getSortKey(string $string): string|false

Estilo procedimental

collator_get_sort_key(Collator $object, string $string): string|false

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.

Parámetros

object

Objeto Collator.

string

La cadena desde la cual producir la clave.

Valores devueltos

Devuelve la clave de collation para la cadena, o false si ocurre un error.

Advertencia

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.

Ejemplos

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 :


3832404046010901dc08

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 :


array(3) {
[0] =>
array(2) {
'name' =>
string(25) "🇳🇱 Derick Rethans"
'linked_account' =>
string(33) "https://phpc.social/users/derickr"
}
[1] =>
array(2) {
'name' =>
string(9) "Elephpant"
'linked_account' =>
string(24) "https://phpc.social/phpc"
}
[2] =>
array(2) {
'name' =>
string(25) "🇫🇷 Marcus Bointon"
'linked_account' =>
string(33) "https://phpc.social/users/Synchro"
}
}

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top