PHP in_array: procurando um valor específico em arrays!

Quando estamos trabalhando com arrays no PHP ou em qualquer outra linguagem, em algum momento, você terá que trabalhar com listas vindo de locais externos, como APIs, web services, etc. E, nessas listas, você precisará checar se o elemento recebido de um login, por exemplo, estará contido no array da listagem externa. Para esse caso, utilizaremos a função PHP in_array.

A escrita pode parecer um pouco confusa quando essa função é visualizada logo de cara, e muitas pessoas podem ter dificuldade em interpretar como é o seu funcionamento. Além disso, os parâmetros contidos na função PHP in_array também podem ser de difícil compreensão.

Mas, essa função abrirá uma quantidade muito grande de coisas que você poderá abordar em seus estudos de desenvolvimento, para fazer o que sua imaginação quiser, com comparações e verificações. Quer aprender mais sobre ela? Venha conosco, pois exploraremos sua utilização a fundo!

O que é PHP in_array?

A função PHP in_array verifica se um elemento existe no array ou não. Para isso, ela utilizará as seguintes condições: 

  • Se o elemento for encontrado no array, retornará o valor true;
  • Se o elemento não for encontrado no array, retornará o valor false;

Vamos imaginar um caso que ocorre em nosso cotidiano: uma pessoa faz o cadastro em um sistema qualquer, utilizando seu e-mail pessoal. A mãe dessa pessoa resolve também fazer o mesmo cadastro, mas utilizando o mesmo endereço pessoal da pessoa. Você acha que o cadastro dela dará certo? 

Depende. Para alguns sistemas, isso não é permitido. Mas, para alguns, não tem problema. Contudo, para os sistemas que não permitam cadastros utilizando e-mails já existentes na aplicação, há uma lógica que não permite isso. Ou seja, quando a mãe dessa pessoa for utilizar o mesmo e-mail já cadastrado por seu filho ou filha, será emitido um alerta de que o endereço já está cadastrado no sistema.

O que isso significa? Que o sistema fez uma verificação no banco de dados e viu que o endereço já existe na aplicação, retornando o alerta. Isso seria similar ao funcionamento do PHP in_array. 

Legal! Mas, como é a escrita dessa função? Esse será o assunto da seção a seguir. 

Qual a sintaxe?

Para a função PHP in_array, utilizamos a seguinte escrita (sintaxe): 

in_array(elemento_pesquisa, array, tipo);

Um exemplo que explicita esse código seria o seguinte: você vai em uma quitanda recém-aberta que só tem morango, banana e laranja à venda. E, por uma pesquisa de preços, você vai procurar por laranjas nessa loja, para ver se ela tem essa fruta. 

Nesse caso, o array teria os elementos: banana, morango e laranja e, você quer procurar apenas o item laranja. Esses seriam os parâmetros que iriam à função. Essa parte será explicada no tópico a seguir, caso você não tenha entendido.

Quais os parâmetros e valores da função PHP in_array?

Com base na sintaxe passada anteriormente, a tabela a seguir exibe como funcionam os parâmetros e valores na função php in_array: 

ParâmetroSignificado
elemento_pesquisaSeria o elemento que você deseja pesquisar no array declarado. Esse parâmetro é obrigatório na função php in_array. 
arraySeria o array que você declarou, que será utilizado para pesquisar o elemento desejado. Esse parâmetro é obrigatório na função php in_array. 
tipoA utilização desse parâmetro é opcional e serve para a pesquisa do elemento_pesquisa ser feita pelo mesmo tipo de dado que ele possui. No caso, se o valor pesquisado for um tipo inteiro, passando o valor TRUE ao tipo, será feita a pesquisa do valor com o mesmo tipo de valor (int → int). O valor padrão desse parâmetro é false


Retornando ao exemplo da quitanda explicado anteriormente, a relação entre as frutas e a pesquisas ficará dessa forma: 

  • O elemento laranja seria o elemento de pesquisa, pois você está procurando laranjas em uma quitanda;
  • O array pode ter qualquer nome, mas, nesse caso, o array teria o nome $frutas. Lembrando que no PHP, para declarar qualquer tipo de variável, é utilizado o cifrão antes ($).

Demonstraremos sua utilização em mais exemplos com código mais adiante. Agora, vamos ver alguns detalhes técnicos que essa função possui. 

Informações técnicas

Valor retornado

O valor retornado será o valor true (verdadeiro), quando o valor for encontrado no array, ou false (falso) quando o array não encontrar o elemento desejado.

Changelog

A partir da versão 4.2 do PHP, o parâmetro de pesquisa search poderá ser utilizado como um array, na função PHP in_array. 

Versão do PHP

Essa função opera a partir da versão 4 do PHP. Como as versões atuais do PHP estão nas versões 7 e 8, não será um problema a utilização dessa função em lançamentos recentes do PHP.

3 dicas para aplicar ao usar a função PHP in_array

Vejamos algumas dicas para a utilização dessa função: 

  • Quando houver a utilização do terceiro parâmetro (tipo), na função, certifique-se que os tipos de dados pesquisados estão corretos, pois você poderá pesquisar um número entre aspas (que seria uma string → texto), quando, na verdade, você quer pesquisar um número inteiro;
  • Ainda sobre esse terceiro parâmetro, quando for feita uma pesquisa de textos e o valor dele for true, há a diferenciação de letras maiúsculas e minúsculas no in_array; 
  • Declare as variáveis com nomes entendidos por qualquer outra pessoa. Declarações como $x, $y, $valor, não são uma boa prática. 

Agora, vamos acompanhar alguns exemplos de como essa função opera na prática!  

5 Exemplos da função PHP in_array na prática!

Para entender os exemplos abaixo, será necessário que você tenha conhecimento em estruturas de decisão (if e else), condições que executam uma lógica se ela for verdadeira e outra lógica caso ela seja falsa. 

<?php

$sistemas_operacionais = array("Linux", "MacOS", "Windows"); 

if (in_array("Windows", $sistemas_operacionais)) { 

    echo "Tem Windows";

} else  { 

    echo "Não tem Windows";

}

?>

No caso, foi declarado o array $sistemas_operacionais, com os valores: Linux, Windows e MacOs. No caso, foi passada uma condição para caso ele achasse a palavra Windows, exibisse na tela: Tem Windows. Se ele não achar essa palavra, imprimiria: Não tem Windows. O resultado do script acima foi o seguinte:

Resposta exemplo 1 PHP in_array
  • Exemplo 2: Vamos utilizar o exemplo da quitanda, da pesquisa de laranjas, explicado no artigo: 
<?php

$frutas = array("Banana", "Morango", "Laranja"); 

if (in_array("Laranja", $frutas)) { 

    echo "Tem laranja na quitanda";

} else  { 

    echo "Não tem laranja na quitanda";

}

?>

No caso, foi declarado o array $frutas e, em seus valores, foram passadas as frutas morango, banana e laranja. No caso, foi passada uma condição para caso ele achasse a palavra Laranja, exibisse na tela: Tem laranja na quitanda. Se ele não achar essa palavra, imprimiria: Não tem laranja na quitanda. O resultado do script acima foi o seguinte:

Resposta Exemplo 2

Observe que nos dois exemplos acima, tanto Windows, como Laranja, foram pesquisados com a letra inicial maiúscula. Se a pesquisa fosse feita com windows, a palavra não seria encontrada. 

  • Exemplo 3: Verificação de um item para operações em banco de dados:
<?php

$acoes = [

 'inserir',

 'editar',

 'atualizar',

 'ver',

 'deletar',

];

 

$pesquisa = in_array('editar', $acoes);

 

var_dump($pesquisa);

?>

No exemplo acima, foi declarado o array $acoes e, em seus valores, foram passadas as operações realizadas em banco de dados. No caso, na variável $pesquisa, ele busca a palavra editar e imprime o resultado na tela, pela função var_dump. O resultado do script acima foi o seguinte:

Resposta exemplo3 PHP in_array

Retornou true, pois existe a palavra editar no array de ações.

  • Exemplo 4: Verificação do carro BMW presente em um array de carros:
<?php

$carros = [

 'Fusca',

 'Ferrari',

 'Vectra',

 'Monza',

 'HB20',

];

 

$search = in_array('BMW', $carros);

 

var_dump($search);

?>

No exemplo acima, foi declarado o array $carros e, em seus valores, foram passados nomes de alguns carros populares no Brasil. No caso, na variável $search, ele busca a palavra BMW e imprime o resultado na tela, pela função var_dump. O resultado do script acima foi o seguinte: 

Resposta Exemplo 4

Retornou false, pois, não há o carro BMW no array de carros. 

  • Exemplo 5: Mais de uma condição para verificar um array de sobremesas, para pesquisa de itens:
<?php

$sobremesas = array("Cocada", "Goiabada", "Quindim", "Geleia");

 

if (in_array("Cocada", $sobremesas, TRUE)) {

  echo "Tem cocada";

} 

if (in_array("Quindim", $sobremesas, TRUE)) {

  echo "Tem quindim";

}

 

?>

No exemplo acima, foi declarado o array $sobremesas e, em seus valores, foram passados nomes de algumas sobremesas. Além disso, foi passado o tipo true, como terceiro parâmetro. No caso, nas duas condições de decisão, ele pesquisa pelos nomes Quindim e, Cocada. O resultado do script acima será o seguinte: 

Resposta Exemplo 5 PHP In_array

Esses dois doces estão no array de sobremesas e foram retornados ambos.

Muito legal a função php in_array, não é? Ela permite que você pesquise um valor que você quiser em um array e, retorna true, se achar o valor. Caso contrário, o valor retornado será false, já que ele não foi encontrado. 

Além disso, essa função possui três parâmetros, dos quais dois deles são obrigatórios, que seriam o valor que você quer pesquisar e o array que você criou para procurar o elemento desejado. 

Quer aprender mais sobre PHP? Confira nosso artigo sobre PHP For!