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 chamadafunction 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 associativofunçã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 bidimensionalfunçã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.