Como excluir um elemento de uma array em PHP

Minahil Noor 30 janeiro 2023
  1. Utilize unset() Função para excluir um elemento de um array em PHP
  2. Utilize array_splice() Function to Delete an Element From an Array in PHP
  3. Use a função array_diff()para excluir um elemento de um array em PHP
Como excluir um elemento de uma array em PHP

Neste artigo, vamos introduzir métodos para excluir um elemento de uma confusão em PHP.

  • Utilizando a função unset()
  • Utilizando a função array_splice()
  • Utilizando a função array_diff()

Utilize unset() Função para excluir um elemento de um array em PHP

A função integrada unset() é utilizada para apagar o valor armazenado em uma variável. Ela só é aplicável às variáveis locais. Ela não reflete seu comportamento em variáveis globais. Podemos utilizar esta função para excluir um elemento de uma array. A sintaxe correta para utilizar esta função é a seguinte

unset($variableName);

Ele tem um único parâmetro obrigatório. A variável cujo valor desejamos excluir é passada como parâmetro para esta função.

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

unset($flowers[1]);
echo "The array is:\n";
print_r($flowers);
?>

Esta função pode apagar um valor de cada vez. O nome do array junto com o índice do elemento ($flowers[1]) é passado como um parâmetro. Esta função não altera os valores do índice. Os valores do índice permanecem os mesmos que eram antes.

Resultado:

The array is:
Array
(
    [0] => Rose
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Tulip
    [5] => Sun Flower
    [6] => Daffodil
    [7] => Daisy
)

Como você pode ver, o índice 1 está faltando após aplicarmos a função unset.

Utilize array_splice() Function to Delete an Element From an Array in PHP

A função array_splice() é utilizada para adicionar elementos a um array ou excluir elementos de um array. A sintaxe correta para utilizar esta função é a seguinte

array_splice($arrayName, $startingIndex, $numOfElements, $array2Name);

Ela tem quatro parâmetros.

  1. $arrayName é um parâmetro obrigatório. É o array cujos elementos serão deletados.
  2. $startingIndex é o índice do elemento que desejamos excluir.
  3. $numOfElements é o número de elementos que desejamos excluir do índice inicial.
  4. $array2Name é um array de elementos que desejamos adicionar.

$numOfElements e $array2Name são opcionais.

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

array_splice($flowers, 4, 3);
echo "The array is:\n";
print_r($flowers);
?>

O array $flowers é passado como parâmetro para esta função junto com o índice inicial 4 e o número de elementos que desejamos excluir-3. Desta forma, podemos excluir vários elementos de uma array.

Resultado:

The array is:
Array
(
    [0] => Rose
    [1] => Lili
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Daisy
)
Nota

Diferente da função unset, a função array_splice irá automaticamente reindexar as chaves.

Daisy tem o novo índice como 4, mas não o índice original - 7, depois que apagamos três elementos antes dele.

Use a função array_diff()para excluir um elemento de um array em PHP

A função integrada array_diff() encontra a diferença entre dois ou mais arrays. Ela pode ser utilizada para excluir vários valores de uma arrays sem afetar seus índices. A sintaxe correta para utilizar esta função é a seguinte

array_diff($array1, $array2, $array3, ... , $arrayN);

É necessário o número N de arrays como parâmetro. Ele compara a primeira array com todas as outras arrays e retorna uma array que contém todos os elementos da primeira array que não estão presentes em outras arrays.

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

$flowers = array_diff($flowers, array("Rose","Lili"));
echo "The array is:\n";
print_r($flowers);
?>

Aqui, o primeiro array que passamos é $flowers e o segundo array contém os elementos que queremos excluir dos $flowers. Esta função não altera os índices dos elementos do array.

Resultado:

The array is:
Array
(
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Tulip
    [5] => Sun Flower
    [6] => Daffodil
    [7] => Daisy
)

Artigo relacionado - PHP Array