Manual do PHP
Anterior |  | Próxima

# array_multisort

(PHP 4 , PHP 5)

array_multisort -- Ordena múltiplos arrays ou arrays multi-dimensionais

## Descrição

bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] )

array_multisort() pode ser usada para ordenar vários arrays de uma vez ou apenas um array multi-dimensional de acordo com uma das dimensões. A associação entre chaves e valores é mantida.

Os arrays dados são tratados como colunas de uma tabela a ser classificada pelas linhas - isso lembra a funcionalidade da cláusula ORDER BY da SQL. O primeiro array é o principal na ordenação. As linhas (valores) no primeiro array serve de base para a ordenação do próximo, e assim por diante.

A estrutura de argumentos dessa função não é muito normal, mas bastante flexível. O primeiro argumento de todos deve ser um array. Subsequentemente, cada argumento pode ser um array ou um dos sinais de classificação da lista a seguir.

Sinais de ordem de classificação:

- SORT_ASC - classifica na ordem crescente

- SORT_DESC - classifica na ordem descrescente

Sinais de tipos de ordenação:

- SORT_REGULAR - compara os elementos normalmente

- SORT_NUMERIC - compara os elementos como itens numéricos

- SORT_STRING - compara os elementos como strings

Não podem existir dois sinais de ordenação do mesmo tipo especificados para um mesmo array. Os sinais de ordenação especificados depois de um array se aplicam apenas para esse array - a eles são atribuídos por padrão os valores SORT_ASC e SORT_REGULAR antes de cada novo argumento do tipo array.

Retorna `TRUE` em caso de sucesso ou `FALSE` em falhas.

Exemplo 1. Ordenando múltiplos arrays

`<?php $ar1 = array("10", 100, 100, "a"); $ar2 = array(1, 3, "2", 1); array_multisort($ar1, $ar2); ?>`

Nesse exemplo, depois da ordenação, o primeiro array terá 10, "a", 100, 100. O segundo conterá 1, 1, "2", 3. Os elementos do segundo array que correpondem aos do primeiro (100 e 100) também foram ordenados.

Exemplo 2. Ordenando um array multi-dimensional

`<?php $ar = array(array ("10", 100, 100, "a"), array (1, 3, "2", 1)); array_multisort($ar[0], SORT_ASC, SORT_STRING, $ar[1], SORT_NUMERIC, SORT_DESC); ?>`

Nesse exemplo, depois da ordenação, o primeiro array terá 10, 100, 100, "a" (foi ordenado como strings em ordem crescente), e o segundo conterá 1, 3, "2", 1 (classificado como números, em ordem descrescente).

Anterior | Principal | Próxima
array_merge | Acima | array_pad