Como excluir um elemento de uma array em PHP

  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

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

  • Como Converter um Array em uma string em PHP