PHP 8.2.28 Released!

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_keyObtém a chave de ordenação de uma string

Descrição

Estilo orientado a objetos

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

Estilo procedural

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

Retorna a chave de agrupamento de uma string. Chaves de agrupamento podem ser comparadas diretamente ao invés de se comparar strings, mas são específicas de implementação e podem mudar entre versões de biblioteca ICU. Chaver de ordenação geralmente são úteis apenas em bancos de dados ou em outras circunstâncias onde chamadas a funções são extremamente custosas.

Parâmetros

object

Objeto de Collator.

string

A string a partir da qual a chave será produzida.

Valor Retornado

Retorna a chave de agrupamento para a string, ou false em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Exemplos

Exemplo #1 Exemplo de collator_get_sort_key()

<?php
$s1
= 'Hello';

$coll = collator_create('en_US');
$res = collator_get_sort_key($coll, $s1);

echo
bin2hex($res);
?>

O exemplo acima produzirá algo semelhante a:


3832404046010901dc08

Exemplo #2 Exemplo de Collator::getSortKey() com 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' ],
];

/* Cria o ordenadorr */
$col = new Collator('en');

/* Ordena letras maiúsculas antes de minúsculas */
$col->setAttribute(Collator::CASE_FIRST, Collator::UPPER_FIRST);

/* Usa uma função definida pelo usuário com ordenação, removendo os emojis */
*/
usort(
$data,
function(
$a, $b) use ($col) {
/* Remove a classe de caracteres 'S' (os símbolos) e espaços em branco
* (com trim) */
$aName = trim(preg_replace('/\p{S}+/u', '', $a['name']));
$bName = trim(preg_replace('/\p{S}+/u', '', $b['name']));

/* Cria a chave de ordenação */
$aKey = $col->getSortKey($aName);
$bKey = $col->getSortKey($bName);

/* Usa a chave de ordenação para sinalizar que elementos são ordenados primeiro */
return $aKey <=> $bKey;
}
);

var_dump($data);
?>

O exemplo acima produzirá algo semelhante 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"
}
}

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top