Classificar array multidimensional em PHP
- Use o operador da nave espacial para classificar a matriz multidimensional em PHP
-
Use a função
usort()
com uma função de comparação anônima para classificar um array multidimensional em PHP -
Use a função
usort()
com uma função de comparação definida pelo usuário para classificar um array multidimensional em PHP
Este artigo apresentará três métodos para classificar a matriz multidimensional por valor em PHP.
Use o operador da nave espacial para classificar a matriz multidimensional em PHP
Podemos usar o operador de nave espacial <=>
para classificar o array multidimensional com valores em PHP. Usamos a função usort()
junto com o operador da nave espacial. O operador foi introduzido no PHP 7. Ele é usado para comparar os dois valores. Resulta em um valor inteiro 0
se ambos os operandos forem iguais, resulta em menor que 0
se o operando esquerdo é menor que o operando direito e resulta em maior que 0
se o operando esquerdo é maior que o direito operando. Da mesma forma, a função usort()
ordena um array com valores considerando a função de comparação definida pelo usuário. A sintaxe da função é a seguinte.
usort($array, $callback)
Aqui, $array
é o array que deve ser classificado. A opção $callback
é uma função de callback anônima que compara o primeiro e o segundo argumentos do array.
Por exemplo, considere a seguinte matriz a ser classificada. Classificaremos o array com o valor da chave age
.
$info = array(
array('name' => 'Jadon', 'age' => 21, 'country' => 'England'),
array('name' => 'Marcus', 'age' => 23, 'country' => 'England'),
array('name' => 'Anthony', 'age' => 24, 'country' => 'France'),
array('name' => 'Mason', 'age' => 19, 'country' => 'England'),
array('name' => 'Dan', 'age' => 23, 'country' => 'Wales'),
);
Dentro da tag de abertura do PHP, escreva a função usort()
com o array $info
e uma função anônima como os dois argumentos. A função anônima tem $x
e $y
como parâmetros. Dentro do corpo da função, use o operador de nave espacial para comparar as idades de dois argumentos como $x['age'] <=> $y['age']
e retornar o valor. Em seguida, feche a tag de abertura do PHP. Então, use a função PHP print_r()
para imprimir o array $info
dentro da tag HTML <pre>
.
Portanto, a matriz é classificada de acordo com o valor age
, conforme mostrado na seção de saída.
Código de exemplo:
<?php
usort($info, function($x, $y) {
return $x['age'] <=> $y['age'];
});
?>
<pre><?php print_r($info);?> </pre>
Produção:
Array
(
[0] => Array
(
[name] => Mason
[age] => 19
[country] => England
)
[1] => Array
(
[name] => Jadon
[age] => 21
[country] => England
)
[2] => Array
(
[name] => Marcus
[age] => 23
[country] => England
)
[3] => Array
(
[name] => Dan
[age] => 23
[country] => Wales
)
[4] => Array
(
[name] => Anthony
[age] => 24
[country] => France
)
)
Use a função usort()
com uma função de comparação anônima para classificar um array multidimensional em PHP
Podemos usar a função usort()
usada no primeiro método para classificar o array multidimensional com valores junto com uma função de retorno de chamada anônima. Neste método, usamos o operador de subtração em vez do operador de nave espacial <=>
. Podemos subtrair os valores do array de acordo com o qual o array é classificado. Assim, podemos classificar o array. Usaremos o mesmo array $info
para classificá-lo pelo valor $age
. Este método pode ser usado antes do PHP 7, pois o operador de nave espacial foi introduzido apenas no PHP 7.
Por exemplo, escreva a função usort()
com os parâmetros acima. No corpo da função anônima, retorne a subtração dos dois argumentos como $x['age'] - $y['age']
. Imprima o array com print_r()
como feito acima. Receberemos a mesma saída do primeiro método.
Código de exemplo:
<?php
usort($info, function($x, $y) {
return $x['age'] - $y['age'];
});
?>
<pre><?php print_r($info);?> </pre>
Use a função usort()
com uma função de comparação definida pelo usuário para classificar um array multidimensional em PHP
Este método é bastante semelhante ao segundo método. A única diferença é que usaremos uma função de comparação definida pelo usuário em vez da função anônima. Este método pode ser usado antes da versão 5.3 do PHP. É porque o conceito de função anônima foi introduzido no PHP 5.3.
Por exemplo, crie uma função definida pelo usuário sortByAge()
com $x
e $y
como parâmetros. Dentro do corpo da função, escrita a subtração das idades conforme acima. Fora da função, escreva a função usort()
com o array $info
e sortByAge
como argumentos. Por último, imprima a matriz.
O exemplo abaixo exibe a mesma saída do primeiro método.
Código de exemplo:
<?php
function sortByAge($x, $y) {
return $x['age'] - $y['age'];
}
usort($info, 'sortByAge');
?>
<pre><?php print_r($info);?> </pre>
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedInArtigo relacionado - PHP Array
- Como determinar a primeira e última iteração em um loop de Foreach em PHP
- Como Converter um Array em uma string em PHP
- Como Obter o Primeiro Elemento de um Array em PHP
- Como fazer Eco ou Imprimir um Array em PHP
- Como excluir um elemento de uma array em PHP
- Como remover elementos de vetor vazio em PHP