Neste tutorial vamos mostrar como verificar no PHP se um determinado valor existe ou não em um array. Para isso, vamos utilizar a função in_array() que procura um valor específico em um array e retorna true (se encontrar) ou false (se não encontrar). Na segunda opção, utilizaremos a função array_search(), que também procura um valor específico em um array e retorna a chave do primeiro elemento encontrado. As duas opções são válidas para este tipo de verificação.

Este tipo de verificação é muito útil quando você precisar checar se um elemento recebido está contido ou não em um array vindo de um banco de dados ou de uma listagem externa, como dados de um API, por exemplo.

Leia também os artigos Como declarar, atribuir e acessar elementos de um Array em PHP e Como comparar 2 ou mais arrays em PHP e pegar a diferença entre eles.

1. Usando a função  in_array()

1.1. A função in_array() verifica se um valor existe em um array. Se o valor pesquisado for encontrado no array, retorna true, caso contrário, retorna false.

Obs.:  Se o elemento pesquisado for uma string, a comparação é feita diferenciando caracteres maiúsculos e minúsculos.

Sintaxe:

in_array(pesquisa, array, tipo);

Parâmetros:

pesquisa: Especifica o valor (elemento) que se deseja pesquisar. Obrigatório.

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

tipo: Se o parâmetro for definido como TRUE, a função in_array() irá pesquisar apenas valores com o tipo de dados idêntico ao valor de pesquisa. Opcional.

Exemplo usando Array Simples com chaves numéricas ordenadas:

1.2. No exemplo abaixo, vamos verificar se existem os países Estados Unidos e França no array pesquisado:

<?php
$paises = array('Brasil', 'Espanha', 'Argentina', 'Estados Unidos');
   
if (in_array("Estados Unidos", $paises)) { 
	echo "Tem Estados Unidos";
} else  { 
    echo "Não tem Estados Unidos";
}

?><br/><?php

if (in_array("França", $paises)) { 
	echo "Tem França";
} else  { 
    echo "Não tem França";
}

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

Veja o resultado:

Exemplo usando Arrays Associativos ou Arrays mistos:

1.3. No exemplo a seguir, vamos verificar se os elementos blue e pink existem no array associativo pesquisado:

1.3.1. É importante salientar que a função in_array() verifica apenas valores e não índices (chaves) de um array. No exemplo abaixo, pink é uma chave (key) e não um valor do array.

<?php
 $cores = array("a" => "green", "red", "b" => "blue", "red", "pink" => "yellow");
   
if (in_array("blue", $cores)) { 
	echo "Tem blue";
} else  { 
    echo "Não tem blue";
}

?><br/><?php

if (in_array("pink", $cores)) { 
	echo "Tem pink";
} else  { 
    echo "Não tem pink";
}

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

Veja o resultado:

Exemplo usando o parâmetro tipo na função in_array():

1.4. Neste exemplo vamos mostrar como usar o parâmetro tipo definido como true. Veja que no exemplo, temos um valor numérico no array.

1.4.1. Usando o parâmetro tipo como TRUE, a função in_array() irá procurar o elemento com o mesmo tipo do item pesquisado. No exemplo abaixo, pesquisamos o valor como string ("35") e como inteiro (35).

1.4.2. Quando não utilizamos o parâmetro tipo, a função in_array() irá pesquisar independente de ser um valor tipo string ou numérica.

<?php

$numbers = array(20, 35, 40, 49, 54, 60);
   
if (in_array("35", $numbers)) { 
	echo "Tem o número 35";
} else  { 
    echo "Não tem o número 35";
}

?><br/><?php

if (in_array("35", $numbers, TRUE)) { 
	echo "Tem o número 35";
} else  { 
    echo "Não tem o número 35";
}

?><br/><?php

if (in_array(35, $numbers, TRUE)) { 
	echo "Tem o número 35";
} else  { 
    echo "Não tem o número 35";
}

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

Veja o resultado:

2. Usando a função  array_search()

2.1. A função array_search() verifica se um valor existe em um array. Se o valor pesquisado for encontrado no array, retorna a chave (key) do primeiro elemento encontrado, caso contrário, retorna false.

Obs.:  Se o elemento pesquisado for uma string, a comparação é feita diferenciando caracteres maiúsculos e minúsculos.

Sintaxe:

array_search(pesquisa, array, tipo);

Parâmetros:

pesquisa: Especifica o valor (elemento) que se deseja pesquisar. Obrigatório.

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

tipo: Se o parâmetro for definido como TRUE, a função array_search() irá pesquisar apenas valores com o tipo de dados idêntico ao valor de pesquisa. Opcional.

Exemplo usando Array Simples com chaves numéricas ordenadas:

2.2. No exemplo abaixo, vamos verificar se existem os países Estados Unidos e França no array pesquisado. Também vamos obter a chave (índice) correspondente ao valor Estados Unidos no array pesquisado.

<?php
$paises = array('Brasil', 'Espanha', 'Argentina', 'Estados Unidos');

   
if (array_search("Estados Unidos", $paises)) { 
	echo "Tem Estados Unidos (";
    echo "Chave do valor encontrado: ".array_search("Estados Unidos", $paises).")";
} else  { 
    echo "Não tem Estados Unidos";
}

?><br/><?php

if (array_search("França", $paises)) { 
	echo "Tem França";
} else  { 
    echo "Não tem França";
}  

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

Veja o resultado:

Exemplo usando Arrays Associativos ou Arrays mistos:

2.3. No exemplo a seguir, vamos verificar se os elementos blue e pink existem no array associativo pesquisado:

2.3.1. É importante salientar que a função search_array(), assim como in_array(), verifica apenas valores e não chaves de um array. No exemplo abaixo, pink é uma chave (key) e não um valor do array.

<?php
 $cores = array("a" => "green", "red", "b" => "blue", "red", "pink" => "yellow");
   
if (array_search("blue", $cores)) { 
	echo "Tem blue";
     echo " (Chave do valor encontrado: ".array_search("blue", $cores).")";
} else  { 
    echo "Não tem blue";
}

?><br/><?php

if (array_search("pink", $cores)) { 
	echo "Tem pink";
    echo " (Chave do valor encontrado: ".array_search("pink", $cores).")";
} else  { 
    echo "Não tem pink";
}
   

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

Veja o resultado:

Exemplo usando o parâmetro tipo na função in_array():

2.4. Neste exemplo vamos mostrar como usar o parâmetro tipo definido como true. Veja que no exemplo, temos um valor numérico no array.

2.4.1. Usando o parâmetro tipo como TRUE, a função array_search() irá procurar o elemento com o mesmo tipo do item pesquisado. No exemplo abaixo, pesquisamos o valor como string ("35") e como inteiro (35).

2.4.2. Quando não utilizamos o parâmetro tipo, a função array_search() irá pesquisar independente de ser um valor tipo string ou numérica.

<?php

$numbers = array(20, 35, 40, 49, 54, 60);
   
if (array_search("35", $numbers)) { 
	echo "Tem o número 35";
} else  { 
    echo "Não tem o número 35";
}

?><br/><?php

if (array_search("35", $numbers, TRUE)) { 
	echo "Tem o número 35";
} else  { 
    echo "Não tem o número 35";
}

?><br/><?php

if (array_search(35, $numbers, TRUE)) { 
	echo "Tem o número 35";
    echo " (Chave numérica do valor 35 é: ".array_search(35, $numbers, TRUE).")";
} else  { 
    echo "Não tem o número 35";
}

laughing 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 - in_array()] » Sobre a função da array_diff(): compara valores entre 2 ou mais arrays e retorna novo array com as diferenças.

2. [Documentação PHP - array_serach()] » Sobre a função da array_search(): procura um valor específico em um array e retorna a chave do primeiro elemento encontrado.

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

Cursos

 Aprenda a ser um programador mais do que completo (Pacote Full Stack)

Compartilhe:

Área do Usuário

Doações

Por favor, ajude o nosso site a se manter online :)

 Obrigado!
Angelo Luis Ferreira
angelo.alf@gmail.com

Produzido por:

Topo