Como inverter a ordem dos elementos de um array usando PHP



Neste tutorial vamos apresentar 2 maneiras para inverter a ordem dos elementos de um array em PHP. Para alcançar esse resultado, temos a opção de utilizar a função array_reverse() ou empregar a estrutura loop for para criar um novo array com os elementos do array original dispostos na ordem inversa.

Leia também os artigos Como declarar, atribuir e acessar elementos de um Array em PHP.

1. Usando a função array_reverse()

1.1. A função array_reverse() retorna um novo array com a ordem dos elementos invertida.

Obs.:  O array original não é alterado.

Sintaxe:

array_reverse(array, tipo = false);

Parâmetros:

array: Especifica o array a ser utilizado. Obrigatório.

tipo: Se o parâmetro for definido como TRUE, chaves serão preservadas. Chaves não numéricas não são afetadas por essa opção, e são sempre preservadas. Obs.: o parâmetro tipo quando ignorado, assume o valor de FALSE. Opcional.

Exemplo usando Array Numérico (vetor) - chaves numéricas:

1.2. No exemplo abaixo, vamos criar um novo array numérico com a ordem dos elementos do array original invertida:

<?php
$originalArray = [1, 2, 3, 4, 5];
$invertedArray = array_reverse($originalArray);
$invertedArrrayPreservedKeys = array_reverse($originalArray, true);

echo '<pre>';
// array original
print_r($originalArray);

echo '<pre>';
// array invertido
print_r($invertedArray);

echo '<pre>';
// array invertido com chaves preservadas
print_r($invertedArrrayPreservedKeys);

😀 Para testar os exemplo mostrado acima, acesse: Squids Editor PHP. Clique no botão [Run].

Veja o resultado:

Exemplo usando Array Associativo:

1.3. No exemplo a seguir, vamos inverter a ordem dos elementos de uma array associativo:

1.3.1. É importante salientar que a função array_reverse() preserva sempre as chaves não numéricas do array original. Portanto, não importa a utilização do parâmetro tipo true ou false quando se trata de chaves não numéricas.

<?php
$originalArray = array(
    'nome' => 'Antonio',
     'sobrenome' => 'Carlos',
     'idade' => 35,
     'telefone' => '9999-9999'
);

$invertedArray = array_reverse($originalArray);
$invertedArrrayPreservedKeys = array_reverse($originalArray, true);

echo '<pre>';
// array original
print_r($originalArray);

echo '<pre>';
// array invertido
print_r($invertedArray);

echo '<pre>';
// array invertido com chaves preservadas
print_r($invertedArrrayPreservedKeys);

😀 Para testar os exemplo mostrado acima, acesse: Squids Editor PHP. Clique no botão [Run].

Veja o resultado:

Exemplo usando Array Multidimensional:

1.4. No exemplo a seguir, vamos inverter a ordem dos elementos de uma array multidimensional:

1.4.1. Como já vimos nos exemplos anteriores, a função array_reverse() preserva sempre as chaves não numéricas do array original. Para chaves numéricas, ao se utilizar o parâmetro "true" as chaves ficam preservadas da mesma forma, e ao se utilizar "false", as chaves não são preservadas e se invertem também. 

<?php
$originalArray = [
    ["id" => 1, "nome" => "Alice"],
    ["id" => 2, "nome" => "Bob"],
];
$invertedArray = array_reverse($originalArray);
$invertedArrrayPreservedKeys = array_reverse($originalArray, true);

echo '<pre>';
// array original
print_r($originalArray);

echo '<pre>';
// array invertido
print_r($invertedArray);

echo '<pre>';
// array invertido com chaves preservadas
print_r($invertedArrrayPreservedKeys);  

😀 Para testar os exemplo mostrado acima, acesse: Squids Editor PHP. Clique no botão [Run].

Veja o resultado:

2. Usando a estrutura de repetição "loop for"

ATENÇÃO: Esse método somente é apropriado para arrays que possuem chaves numéricas, como arrays numéricos e arrays multidimensionais.

2.1. Podemos utilizar estrutura de repetição do PHP, loop for, para criar um novo array com a ordem dos elementos do array original invertida.

Obs.:  Nesse método, não é possível preservar a ordem das chaves.

Estrutura padrão: Podemos utilizar a estrutura abaixo em quase todas aplicações com arrays com chaves numéricas:

// conta o número de elementos do array original
$length = count($originalArray);

// constrói novo array com os elementos invertidos
for ($i = $length - 1; $i >= 0; $i--) {
    $invertedArray[] = $originalArray[$i];
}

2.1.1. Primeiro definimos o número de elementos do array principal, onde utilizamos a função count().

2.1.2. Construimos um novo array iniciando-se pelo último elemento do array original.

Exemplo usando Array Numérico (vetor) - chaves numéricas:

2.2. No exemplo abaixo, vamos criar um novo array numérico com a ordem dos elementos do array original invertida:

<?php
$originalArray = [1, 2, 3, 4, 5];

$length = count($originalArray);
for ($i = $length - 1; $i >= 0; $i--) {
    $invertedArray[] = $originalArray[$i];
}

echo '<pre>';
// array original
print_r($originalArray);

echo '<pre>';
// array invertido
print_r($invertedArray); 

😀 Para testar os exemplo mostrado acima, acesse: Squids Editor PHP. Clique no botão [Run].

Veja o resultado:

Exemplo usando Array Multidimensional com loop for:

2.3. No exemplo a seguir, vamos inverter a ordem dos elementos de uma array multidimensional:

2.3.1. Como já vimos no exemplo anterior, ao utilizarmos o laço de repetição loop for para invertermos os elementos de um array, as chaves nesse método não podem ser preservadas e se invertem também.

<?php
$originalArray = [
    ["id" => 1, "nome" => "Alice"],
    ["id" => 2, "nome" => "Bob"],
];


$length = count($originalArray);
for ($i = $length - 1; $i >= 0; $i--) {
    $invertedArray[] = $originalArray[$i];
}

echo '<pre>';
// array original
print_r($originalArray);

echo '<pre>';
// array invertido
print_r($invertedArray); 

😀 Para testar os exemplo mostrado acima, acesse: Squids Editor PHP. Clique no botão [Run].

Veja o resultado:

Documentação Oficial

1. [Documentação PHP - array_reverse] » Sobre a função da array_reverse(): retorna um novo array com os elementos do array original invertidos

2. [Documentação PHP - estrutura "for"] » Sobre a estrutura de repetião loop for.

3. [Documentação PHP - arrays » Manual PHP com informações de como usar arrays.

O anúncio abaixo ajuda manter o Portal Visual Dicas

Comentários

×

Infomações do site / SEO