HOWTO · PHP

Executar Array Eliminar por Valor Não Chave em PHP

Este artigo introduz como executar a eliminação de array por valor e não por chave em PHP. Inclui a função array_search(), função unset() e função array_diff().

Nesta página

Este artigo irá introduzir diferentes métodos para remover valor de um array em PHP.

Utilize a função array_search() e unset() para executar o Array Delete por valor e não por chave em PHP

O principal procedimento para executar a eliminação de array por valor, mas não uma chave, é encontrar primeiro o valor. Poderíamos apagar o valor depois de o encontrarmos. Encontraremos o valor utilizando a função array_search() e apagá-lo utilizando a função unset(). A função unset() redefine uma variável. A sintaxe correcta para utilizar estas funções é a seguinte.

array_search($value, $array, $strict);

A função integrada array_search() tem três parâmetros. Os detalhes dos seus parâmetros são os seguintes

Parâmetros Descrição
$value obrigatório É o valor que queremos pesquisar no array.
$array obrigatório É a matriz em que pesquisaremos o valor dado.
$strict opcional Se este parâmetro for definido para “VERDADEIRO”, então a função também pesquisará os elementos idênticos no array.

Esta função retorna a chave do fornecido.

Sintaxe de unset()

unset($variable1, $variable2, ..., $variableN);

A função embutida unset() tem múltiplos parâmetros. Os detalhes dos seus parâmetros são os seguintes

Parâmetros Descrição
$variable1, $variable2, $variableN obrigatório É a variável ou estrutura de dados que queremos desajustar. Pelo menos uma variável é obrigatória.

Esta função não retorna nada.

Exemplo de remoção de valores de um Array em PHP

O programa abaixo mostra como podemos utilizar estas funções para executar a eliminação de array por valor, mas não por chave, em PHP.

<?php
$array = array("Rose","Lili","Jasmine","Hibiscus","Daffodil","Daisy");
echo("Array before deletion: \n");
var_dump($array);
$value = "Jasmine";
if (($key = array_search($value, $array)) !== false) {
    unset($array[$key]);
}
echo("Array after deletion: \n");
var_dump($array);
?>

Resultado:

Array before deletion: 
array(6) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [2]=>
  string(7) "Jasmine"
  [3]=>
  string(8) "Hibiscus"
  [4]=>
  string(8) "Daffodil"
  [5]=>
  string(5) "Daisy"
}
Array after deletion: 
array(5) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [3]=>
  string(8) "Hibiscus"
  [4]=>
  string(8) "Daffodil"
  [5]=>
  string(5) "Daisy"
}

Utilize o array_diff() Função para executar a exclusão de array por valor, mas não por chave, em PHP

Em PHP, também podemos utilizar a função array_diff() para executar a eliminação de array por valor e não por chave. Esta função calcula a diferença de um dado array com outro array. A sintaxe correcta para utilizar esta função é a seguinte.

Sintaxe

array_diff($array, $Arr1, $Arr2, ...,$ArrN);

A função array_diff() aceita parâmetros N+1. O detalhe dos seus parâmetros é o seguinte.

Parâmetros Descrição
$array obrigatório É a matriz principal da qual queremos retirar um valor
$Arr1, $Arr2, $ArrN obrigatório É o array que queremos remover. A função irá tirar a sua diferença com a matriz e retirá-la do array se ela estiver presente.

O programa que executa a eliminação do array por valor, mas não a chave, é o seguinte.

<?php
$array = array("Rose","Lili","Jasmine","Hibiscus","Daffodil","Daisy");
echo("Array before deletion: \n");
var_dump($array);
$value = array("Jasmine");
$array = array_diff( $array, $value);
echo("Array after deletion: \n");
var_dump($array);
?>

Resultado:

Array before deletion: 
array(6) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [2]=>
  string(7) "Jasmine"
  [3]=>
  string(8) "Hibiscus"
  [4]=>
  string(8) "Daffodil"
  [5]=>
  string(5) "Daisy"
}
Array after deletion: 
array(5) {
  [0]=>
  string(4) "Rose"
  [1]=>
  string(4) "Lili"
  [3]=>
  string(8) "Hibiscus"
  [4]=>
  string(8) "Daffodil"
  [5]=>
  string(5) "Daisy"
}