Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

bah

buscar valor em um array

Recommended Posts

ola amigos,estou tendo um problemapreciso buscar em um array a palavra que o usuário digitar,tentei usar o array_search, mas se o usuário digita "DVD" e no array tem a palavra "DVD Vídeo" ele retorna vazio.as vezes tem outro método para solucionar meu problema.estou puxando os dados de um documento de texto, e cada produto coloquei em um array pelo fgets (cada linha = cada produto = cada valor do array)se tiver algum método me ajudem =]obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

subpos !???

faz uma funçãozinha, que contenha o array_search, e caso o resultado de array_search seja igual a null, tu utiliza um loop para percorrer o array passado por parametro e compare os valores com o parametro de busca usando strpos, instr ou strstr ... tantu faz !!!

 

ps.: se eu não me engano, tem como fazer isso que deseja em poucas linhas, usando expressões regulares. não sou expert em ER. mas da uma olhada !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha oque eu fiz ..... é só você adaptar...

 

<html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><?if(isset($_POST['submit'])){$array1 = array("1" => DVDplayer, "2" => lala, "3" => aff, "5" => DVD_Imasters, "6" => sadjow);function comparar($var){$var_busca = $_POST['var_busca'];	return(strstr($var,$var_busca));}print_r(array_filter($array1, "comparar"));}?><form name="form1" method="post" action="">  <input name="var_busca" type="text" id="var_busca">  <input type="submit" name="submit" value="busca no array"></form></body></html>

só que esse é case sensitive adaptem ele pois estou sem tempo rsrs

vlw galera^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola amigos

obrigado pelas respostas

pesquisei, pesquisei, e pesquisei...adaptei varios códigos, misturei, e cheguei no que eu realmente queria..

abaixo o código:

(aproveitei o html do que o amigo acima postou)

<html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><?phpif ($_POST['submit']) {	$array = array("maçã", "banana", "laranja", "melancia", "melão");		function search_array($busca, $array)	{	   foreach ($array as $chave => $valor) {	   if (strpos($valor, $busca) !== FALSE)	   $x[] = $chave;	   }	   if (count($x) != 0) {			return $x;	   }else{			return FALSE;	   }	}	$string = $_POST['var_busca'];	$buscakey = search_array($string, $array);	if ($buscakey !== false) {		for ($i = 0; $i < count($buscakey); $i++) {			echo $array[$buscakey[$i]].'<br>';		}	}else{		echo 'Não foi possível achar "'.$string.'"<br>';	}}?><form name="form1" method="post" action="">  <input name="var_busca" type="text" id="var_busca">  <input type="submit" name="submit" value="busca no array"></form></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já que o defunto foi exumado, vamos ver...

 

Muito provavelmente seu caso não funcionou por um de dois motivos: O seu código não se ajusta à solução proposta ou porque ainda manteve o uso depreciado de ereg().

 

Mas, todo o enrosco do tópico poderia ser resolvido com preg_grep().

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz assim porém deu erro, strstr() expects parameter 1 to be string

 

 

 

 
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>
<?php
if(isset($_POST['submit'])){

 
 $array1 = array(
   "5196568522"   => array("tipo" => "Oi Torpedos"),
   "5342008522"  => array("tipo" => "Dados"),
   "5230568522" => array("tipo" => "Dados"));
 
function comparar($var){
$var_busca = $_POST['var_busca'];
return(strstr($var,$var_busca));
}
$comparar = array_filter($array1, "comparar");
 
echo '<pre>';
print_r($comparar);
echo '</pre>';
 
}?>
<form name="form1" method="post" action="">
  <input name="var_busca" type="text" id="var_busca">
  <input type="submit" name="submit" value="busca no array">
</form>
</body>
</html>
 
 
 
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê um var_dump() em $var, dentro desse seu callback.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.