bah 0 Denunciar post Postado Setembro 12, 2006 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
Void : 0 Denunciar post Postado Setembro 12, 2006 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
Sadjow 1 Denunciar post Postado Setembro 12, 2006 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
crucifier 0 Denunciar post Postado Setembro 12, 2006 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
Sadjow 1 Denunciar post Postado Setembro 12, 2006 rox vei.... vlw^^ Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Setembro 12, 2006 Não era mais fácil fazer: function search_in_array($palavra,$array) { foreach($array as $chave => $valor) { if (ereg($palavra,$valor)) return $valor; }}??? Compartilhar este post Link para o post Compartilhar em outros sites
crucifier 0 Denunciar post Postado Setembro 12, 2006 verdadi =]]]mesma coisa, com menos linhas...obrigado alissonvou postar o código no laboratório de scripts para ficar mais fácil caso alguem precise Compartilhar este post Link para o post Compartilhar em outros sites
Douglas Fernandess 2 Denunciar post Postado Março 28, 2013 tentei usa isso mais não deu certo Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Março 28, 2013 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
Douglas Fernandess 2 Denunciar post Postado Março 28, 2013 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
Bruno Augusto 417 Denunciar post Postado Março 28, 2013 Dê um var_dump() em $var, dentro desse seu callback. Compartilhar este post Link para o post Compartilhar em outros sites
Douglas Fernandess 2 Denunciar post Postado Março 28, 2013 tah dando null Compartilhar este post Link para o post Compartilhar em outros sites