Classificação personalizada de matrizes multidimensionais
Classificação de matrizes multidimensionais pode ser uma tarefa comum na programação. Este artigo demonstra como classificar tal array com base em uma chave específica usando a função usort() do PHP.
Compreendendo a tarefa
Considere o seguinte array multidimensional onde cada elemento representa um registro:
Array (
[0] => Array
(
[iid] => 1
[invitee] => 174
[nid] => 324343
[showtime] => 2010-05-09 15:15:00
[location] => 13
[status] => 1
[created] => 2010-05-09 15:05:00
[updated] => 2010-05-09 16:24:00
)
[1] => Array
(
[iid] => 1
[invitee] => 220
[nid] => 21232
[showtime] => 2010-05-09 15:15:00
[location] => 12
[status] => 0
[created] => 2010-05-10 18:11:00
[updated] => 2010-05-10 18:11:00
))
Classificando por uma chave
Para classificar esse array pela chave de "status", precisamos definir uma função de comparação que determine a ordem dos elementos.
function cmp($a, $b) {
if ($a['status'] == $b['status']) {
return 0;
}
return ($a['status'] Esta função compara os valores de "status" de dois elementos. Se os valores forem iguais, retorna 0. Se o primeiro elemento tiver um valor de "status" inferior ao segundo, retorna -1. Caso contrário, ele retorna 1.
Usando usort()
Agora podemos usar a função usort() para classificar o array usando nossa função de comparação:
usort($array, "cmp");
Isso classificará o array em ordem crescente com base na chave "status". O array modificado terá seus elementos reorganizados de acordo.
Personalizando a comparação
A função de comparação pode ser personalizada para classificar o array com base em qualquer chave. Simplesmente modifique a função para comparar os valores-chave desejados. Isso fornece flexibilidade na classificação de matrizes multidimensionais com base em diferentes critérios.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3