Nuestros mejores desarrolladores agotaron sus provisiones de café, en su búsqueda todo el tiempo por la respuesta, hasta que Carmen halló la contestación en GitHub y en este momento la compartimos con nosotros.
Solución:
Para coincidencia parcial puedes iterar el array y usa un string función de búsqueda como strpos().
function array_search_partial($arr, $keyword)
foreach($arr as $index => $string)
if (strpos($string, $keyword) !== FALSE)
return $index;
Por un coincidencia exactausa in_array()
in_array('green', $arr)
Puede usar la función preg_grep de php. Es compatible con PHP >= 4.0.5.
$array = array(0 => 'blue', 1 => 'red', 2 => 'green string', 3 => 'red');
$m_array = preg_grep('/^greens.*/', $array);
$m_array
contiene elementos coincidentes de array.
Hay varias formas…
$arr = array(0 => 'blue', 1 => 'red', 2 => 'green string', 3 => 'red');
Buscar el array con un bucle:
$results = array();
foreach ($arr as $value)
if (strpos($value, 'green') !== false) $results[] = $value;
if( empty($results) ) echo 'No matches found.';
else echo "'green' was found in: " . implode('; ', $results);
Utilice array_filter():
$results = array_filter($arr, function($value)
return strpos($value, 'green') !== false;
);
Para usar Closures con otros argumentos existe el use
-palabra clave. Entonces puedes abstraerlo y envolverlo en una función:
function find_string_in_array ($arr, $string)
return array_filter($arr, function($value) use ($string)
return strpos($value, $string) !== false;
);
$results = find_string_in_array ($arr, 'green');
if( empty($results) ) echo 'No matches found.';
else echo "'green' was found in: " . implode('; ', $results);
Aquí hay un ejemplo de trabajo: http://codepad.viper-7.com/xZtnN7
Al final de la web puedes encontrar las ilustraciones de otros programadores, tú asimismo eres capaz mostrar el tuyo si te apetece.