Foros del Web » Programando para Internet » PHP »

buscar en un array

Estas en el tema de buscar en un array en el foro de PHP en Foros del Web. tengo un array de adjetivos negativos tales como $mi_array=array(malo, peor, feo); entonces por post mando una oracion tal como $frase="este foro es muy malo"; entonces ...
  #1 (permalink)  
Antiguo 03/08/2011, 13:06
 
Fecha de Ingreso: julio-2011
Ubicación: donde me encuentre la noche
Mensajes: 140
Antigüedad: 13 años, 3 meses
Puntos: 3
buscar en un array

tengo un array de adjetivos negativos tales como

$mi_array=array(malo, peor, feo);

entonces por post mando una oracion tal como


$frase="este foro es muy malo";

entonces necesito determinar si en mi frase aparece alguna de las palabras que muestro en el array

ya use eregi y in_array pero solo me muestran coincidencia si solo es la palabra tal como
$frase="malo";

y no la frase completa...

lo he hecho asi

$mi_array=array(malo, peor, feo);

//lo que recibo en post
$frase="este foro es muy malo";

if(in_array($frase, $mi_array))
echo "encontrado";
else
echo "no encontrado";

funciona si y solo si es una sola palabra lo que recibo en post.... y lo que recibo siempre es una frase asi que no me funciona, como lo puedo hacer
agradezco su ayuda
  #2 (permalink)  
Antiguo 04/08/2011, 06:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: buscar en un array

Pero ¿que quieres hacer, luego que descubras las palabras? Eliminarlas, cambiarlas solo detectarlas. Para hacerlo puedes usar preg_match o strpos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 04/08/2011, 07:30
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 16 años, 2 meses
Puntos: 26
Respuesta: buscar en un array

Olvidate, no es Merlin PHP. Lo que vas a tener que hacer es: obtener todas las palabras de tu texto y compararlas con in_array() una por una.

Una pista:
pos = 0
mientras (frase[pos] != blanco){
palabra .= frase[pos];
pos++
}
si (in_array(palabra) == v){
es adjetivo negativo
}sino{
no es adjetivo negativo
}

Con eso evaluas 1 palabra, buscale la vuelta para evaluar todas la de la frase.
  #4 (permalink)  
Antiguo 04/08/2011, 07:36
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: buscar en un array

separa tu cadena con explode() y luego usa in_array o array_search

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 04/08/2011, 07:40
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 16 años, 2 meses
Puntos: 26
Respuesta: buscar en un array

Cita:
Iniciado por Hidek1 Ver Mensaje
separa tu cadena con explode() y luego usa in_array o array_search

saludos.
Espectacular! no tenía en cuenta esa función.
El ejemplo del manual de PHP le soluciona el problema al amigo:
Código PHP:
Ver original
  1. <?php
  2. $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
  3. $pieces = explode(" ", $pizza);
  4. echo $pieces[0]; // piece1
  5. echo $pieces[1]; // piece2
  6. ?>

Solo le resta hacerle un foreach a su "$pieces".
  #6 (permalink)  
Antiguo 04/08/2011, 08:26
Avatar de gusma62  
Fecha de Ingreso: julio-2008
Ubicación: Tepatitlán, Jalisco, Mexico
Mensajes: 167
Antigüedad: 16 años, 4 meses
Puntos: 6
Respuesta: buscar en un array

Acuerdate de las comillas

$mi_array=array("malo", "peor", "feo");
  #7 (permalink)  
Antiguo 04/08/2011, 08:34
Avatar de skywolker  
Fecha de Ingreso: julio-2011
Ubicación: España
Mensajes: 195
Antigüedad: 13 años, 3 meses
Puntos: 8
Respuesta: buscar en un array

hay de todo colega usa in_array o array_search y otro mas array_keys()


Código PHP:

$array
=array("hola","que");
$e=explode(" ","hola tu");


for(
$i=0;$i<=count($e);$i++){

if(
array_keys($e[$i],$array)){
echo 
"encontrado".$e[$i];

}else{
echo 
"No se encontro ".$e[$i] ;
}




Etiquetas: apis-y-servicios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:02.