Busca em array como se fosse um LIKE do SQL


preg_grep - Retorna as entradas do array que combinaram com o padrão


array preg_grep ( string $pattern , array $input [, int $flags ] )
Se usado a flag PREG_GREP_INVERT, esta função retorna os elementos do array de entrada que não casam com o dado pattern.


// 1 - procurar os indices que contem o padrao
$array = array();
$array['anderson'] = 1;
$array['andre'] = 2;
$array['bruno'] = 3;
$array['joao'] = 4;

$search = "and";

$keys = array_keys($array); 
$result = preg_grep('/'.$search.'/i', $keys);

// $result é um array com os indices encontrados
foreach ($result as $val)
	echo $val;
	
// anderson
// andre


// 2 - procurar o padrao nos valores do array e nao no indice
$array = array();
$array[0] = 'abc';
$array[1] = 'aeiou';
$array[2] = 'cdf';
$array[3] = 'xxxx';

$search = "a";

$result = preg_grep('/'.$search.'/i', $array);

foreach ($result as $i => $val)
	echo $i . " - " . $val;

// 0 -> 'abc'
// 1 -> 'aeiou'





Comentários

Copyright © 2018 Anderson Bravo
www.andersonbravo.com.br
anderson@andersonbravo.com.br