php

Uso da função usort () em PHP

Uso da função usort () em PHP
Existem muitas funções integradas no PHP para classificar as variáveis ​​do array. função usort () é uma delas. Esta função classifica a matriz usando uma função de retorno de chamada definida pelo usuário. Quando a matriz contém um tipo específico de dados que não pode ser classificado de uma maneira padrão usando outras funções de classificação, é melhor usar usort (). Por exemplo, se a matriz contém valores de dados, a variedade não pode ser classificada apropriadamente usando outras funções de classificação do PHP. Este tipo de coleção pode ser classificado definindo a função definida pelo usuário apropriada chamada no segundo argumento da função usort () como a função usort () pode classificar os valores de array específicos mostrados neste tutorial.

Sintaxe:

A sintaxe da função usort () é fornecida abaixo.

Usort booleano (array $ array, callback ())

Esta função tem dois argumentos. Ambos os argumentos são obrigatórios. O primeiro argumento leva a matriz que será classificada. A função callback () compara os valores da matriz para classificar a matriz e retorna um valor numérico. Se os argumentos da função callback () forem iguais, a função retornará 0. Se o primeiro argumento da função callback () for maior que o segundo argumento, ele retornará 1. Se o primeiro argumento da função callback () for menor que o segundo argumento, ele retornará -1. A função usort () retorna verdadeiro para classificação bem-sucedida e retorna falso para classificação malsucedida. Alguns usos desta função foram mostrados na próxima parte deste tutorial.

Exemplo-1: classificar uma matriz de valores de data

O exemplo a seguir mostra como uma matriz de valores de data pode ser classificada corretamente usando a função usort (). Crie um arquivo PHP com o seguinte script. $ date_array é definido com valores de cinco datas. sort_date () função é declarada como função de retorno de chamada para classificar o $ date_array. Os valores da matriz são impressos antes de chamar a função usort (). Quando a função usort () é chamada com a matriz e a função de retorno de chamada, ela converterá dois valores de data em valores de carimbo de data / hora usando a função strtotime (). Se os dois valores de carimbo de data / hora forem iguais, a função retornará 0. Se o primeiro valor do carimbo de data / hora for maior do que o segundo valor do carimbo de data / hora, a função retornará 1. Se o valor do primeiro carimbo de data / hora for menor que o valor do segundo carimbo de data / hora, a função retornará -1. função usort () irá chamar a função de retorno de chamada várias vezes até que o $ date_array está classificado corretamente. Em seguida, a matriz classificada será impressa usando o para cada ciclo.

// Defina a função de retorno de chamada
function sort_date ($ a, $ b)
retornar strtotime ($ a) - strtotime ($ b);

// Declara a matriz de valores de data
$ date_array = array ('25 -03-2020 ', '14 -03-2020', '28 -02-2015 ', '09 -12-2017', '20 -09-2015 ');
// Imprime os valores da matriz antes de classificar
echo "

Os valores da matriz de datas:

";
foreach ($ date_array as $ value)

echo $ value."
";

// Classifique a matriz usando usort ()
usort ($ date_array, "sort_date");
// Imprime a matriz após a classificação
echo "

A saída após a classificação da matriz de datas:

";
foreach ($ date_array as $ value)

echo $ value."
";

?>

Resultado:

A seguinte saída aparecerá após a execução do script do servidor.

Exemplo 2: classificar uma matriz associativa

O exemplo a seguir mostra como uma matriz associativa pode ser classificada usando a função usort (). Crie um arquivo PHP com o seguinte script. sort_names () função é declarada uma função de retorno de chamada para classificar a matriz com base nos valores da matriz. O operador ternário é usado no sort_names () função para comparar os valores da matriz associativa. Se os dois valores forem iguais, a função de retorno de chamada retornará 0. Se o valor do primeiro argumento for maior que o valor do segundo argumento, a função de retorno de chamada retornará 1. Se o valor do primeiro argumento for menor que o valor do segundo argumento, a função de retorno de chamada retornará -1. usort () irá classificar a matriz usando a função de retorno de chamada, e a matriz classificada será impressa usando o para cada ciclo.

// Defina a função para classificar o array associativo
função sort_names ($ a, $ b)
return $ a == $ b ? 0: $ a> $ b ? 1: -1;

// Defina a matriz associativa
$ pessoas = array ("1001" => "Meera Ali", "1002" => "Kabir Hossain", "1003" => "Nurjahan Akter");
// Classifica a matriz
usort ($ persons, "sort_names");
// Imprime a matriz classificada
echo "Os valores da matriz classificada:
";
foreach ($ people as $ person)
echo $ person. "
";
?>

Resultado:

A seguinte saída aparecerá após a execução do script do servidor.

Exemplo 3: Classifique uma matriz bidimensional

O exemplo a seguir mostra como uma matriz bidimensional pode ser classificada usando a função usort (). Crie um arquivo PHP com o seguinte script. sort_array () função é declarada uma função de retorno de chamada para classificar a matriz com base nos valores da matriz. A função strcmp () é usada na função de retorno de chamada para comparar os valores da matriz. Se os dois valores forem iguais, a função strcmp () retornará 0. Se o valor do primeiro argumento for maior que o valor do segundo argumento, a função strcmp () retornará 1. Se o valor do primeiro argumento for menor que o valor do segundo argumento, a função strcmp () retornará -1. usort () irá classificar a matriz usando a função de retorno de chamada, e a estrutura da matriz classificada será impressa usando o print_r () função.

// Defina a função para classificar o array bidimensional
função sort_array ($ a, $ b)

return strcmp ($ a ['a'], $ b ['a']);

// Declara a matriz bidimensional
$ animals = array (array ("a" => "Lion"), array ("a" => "Deer"), array ("a" => "Rabbit"), array ("a" => "Monkey "));
// Classifica a matriz
usort ($ animals, "sort_array");
// Imprime a matriz classificada
echo "Os valores da matriz após usort ():
";
print_r ($ animais);
echo "
";
?>

Resultado:

A seguinte saída aparecerá após a execução do script do servidor.

Conclusão:

usort () é uma função útil para classificar tipos particulares de dados que não podem classificar corretamente as funções normais de classificação do PHP. A função de retorno de chamada da função usort () é definida com base nos tipos de valores que são necessários para classificar. Este tutorial ajudará os leitores a saber como usar a função usort () e aplicá-la em seus scripts com base no requisito.

Melhores jogos para jogar com rastreamento manual
Oculus Quest introduziu recentemente a grande ideia de rastreamento manual sem controladores. Com um número cada vez maior de jogos e atividades que e...
Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...
Top 5 cartas de captura de jogos
Todos nós vimos e amamos streaming de jogos no YouTube. PewDiePie, Jakesepticye e Markiplier são apenas alguns dos melhores jogadores que ganharam mil...