Como utilizar a função preg_grep no PHP para filtrar arrays com expressões regulares

A função preg_grep permite filtrar elementos de um array com base em expressões regulares, facilitando a manipulação de dados em PHP.

Filtrando Arrays com preg_grep

A função preg_grep é uma ferramenta poderosa no PHP, utilizada para filtrar elementos de um array com base em um padrão definido por uma expressão regular. Essa função é especialmente útil quando você precisa trabalhar com grandes conjuntos de dados e deseja extrair apenas aqueles que atendem a critérios específicos.

Sintaxe da Função

A sintaxe de preg_grep é bastante simples:

preg_grep(string $pattern, array $input, int $flags = 0): array
  • $pattern: A expressão regular que você quer usar para filtrar os dados.
  • $input: O array que será filtrado.
  • $flags: (opcional) Flags que podem alterar o comportamento da função.

Exemplo Prático

Vamos considerar um exemplo onde temos um array de nomes e queremos filtrar apenas aqueles que começam com a letra 'A'.

$nomes = ['Ana', 'Bruno', 'Alice', 'Carlos'];
$resultado = preg_grep('/^A/', $nomes);
print_r($resultado);

Neste código, o padrão '/^A/' indica que estamos interessados em todos os nomes que começam com a letra 'A'. O resultado será:

Array
(
    [0] => Ana
    [2] => Alice
)

Como você pode observar, preg_grep retornou um novo array contendo apenas os nomes que atendem ao padrão especificado.

Utilizando Flags

As flags podem ser utilizadas para modificar o comportamento da filtragem. Por exemplo, se quisermos que a busca seja case insensitive, podemos usar a flag PREG_ICASE:

$resultado = preg_grep('/^a/i', $nomes, PREG_GREP_INVERT);
print_r($resultado);

Essa abordagem irá incluir todos os nomes que começam com 'a' ou 'A'.

Considerações Finais

Utilizar a função preg_grep pode transformar a forma como você manipula arrays no PHP. Combinando expressões regulares com arrays, você pode realizar filtragens sofisticadas e precisas.

Exemplos Adicionais

Filtrando com Vários Critérios

Suponha que você tenha um array de emails e deseje filtrar apenas aqueles que pertencem a um domínio específico:

$emails = ['teste@gmail.com', 'contato@yahoo.com', 'info@gmail.com'];
$resultado = preg_grep('/@gmail\.com$/', $emails);
print_r($resultado);

Aqui, a expressão '/@gmail\.com$/' garante que estamos filtrando apenas emails que terminam com @gmail.com.

Extraindo Números de um Array

Em um cenário onde você tem um array com misturas de texto e números, a função pode ser útil para extrair apenas os números:

$mix = ['texto', '123', '456', 'maistexto'];
$numeros = preg_grep('/^\d+$/', $mix);
print_r($numeros);

Esse exemplo demonstra como preg_grep pode ser utilizado para filtrar dados numéricos de um array que contém strings.

Conclusão

A função preg_grep é uma das muitas ferramentas que o PHP oferece para trabalhar com arrays e expressões regulares. Ao dominar essa função, você pode facilitar suas operações de filtragem e manipulação de dados de maneira eficiente e eficaz.

A função preg_grep é uma das muitas funções que fazem parte do poderoso arsenal do PHP para trabalhar com arrays. Com a crescente demanda por manipulação de dados em tempo real, entender como usar preg_grep se torna uma habilidade essencial para qualquer desenvolvedor. A filtragem de dados é uma tarefa comum em muitos projetos, e esta função permite que você o faça de maneira simples e efetiva. Ao aprender a utilizar expressões regulares, você poderá aplicar preg_grep em diversas situações, tornando suas aplicações mais dinâmicas e responsivas às necessidades dos usuários. O conhecimento dessa função não só melhora a qualidade do seu código, mas também aumenta sua eficiência ao lidar com grandes volumes de dados, permitindo extrações precisas e personalizadas.

Algumas aplicações:

  • Filtragem de dados em formulários
  • Validação de entradas de usuários
  • Extração de informações de grandes conjuntos de dados
  • Criação de relatórios com dados filtrados

Dicas para quem está começando

  • Pratique com exemplos diversos para entender melhor as expressões regulares.
  • Teste suas expressões no site regex101.com antes de implementá-las.
  • Considere as flags disponíveis para obter resultados mais precisos.
  • Verifique sempre a documentação oficial do PHP para detalhes adicionais.
  • Não hesite em buscar ajuda em comunidades online quando encontrar dificuldades.
Foto de Lucas Martins
Contribuições de
Lucas Martins

Desenvolvedor full stack atuando com PHP, Java, Node.js e Python.

Mais sobre o autor
Compartilhe este tutorial: preg_grep()

Compartilhe este tutorial

Continue aprendendo:

preg_split()

A função preg_split permite dividir strings de acordo com uma expressão regular, facilitando a manipulação de texto em PHP.

Tutorial anterior

preg_quote()

preg_quote é uma função essencial em PHP para escapar caracteres especiais em strings.

Próximo tutorial