Foros del Web » Programando para Internet » PHP »

agregar un caracter a cada elemento del array

Estas en el tema de agregar un caracter a cada elemento del array en el foro de PHP en Foros del Web. Gente: necesito hacer funcionar una búsqueda match / against en mysql, y para esto debo agregarle un "+" antes de cada término que se ingresa ...
  #1 (permalink)  
Antiguo 01/02/2010, 14:32
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
agregar un caracter a cada elemento del array

Gente: necesito hacer funcionar una búsqueda match / against en mysql, y para esto debo agregarle un "+" antes de cada término que se ingresa por el campo "buscar". Hice este array, pero si la variable es "aceite de primula" en vez de devolverme "+aceite +de +primula" me devuelve "+aceite de primula".
Es que no uso mucho los arrays, alguien me da una mano?
Código:
$array_busqueda = array();
$array_busqueda[] = $buscar;
foreach($array_busqueda as $termino)
{
list($buscar) = explode(" ",$termino);
$parcial_buscar="+$termino"; 
}

echo $parcial_buscar;
gracias!
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #2 (permalink)  
Antiguo 01/02/2010, 14:36
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: agregar un caracter a cada elemento del array

no te va un implode("+",$array);

(?)
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 01/02/2010, 14:39
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: agregar un caracter a cada elemento del array

Venga, y cómo sería?
probé con $parcial_buscar=implode("+",$array); pero no. ¿cómo lo uso?
gracias hidek
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #4 (permalink)  
Antiguo 01/02/2010, 14:46
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: agregar un caracter a cada elemento del array

Código PHP:
Ver original
  1. $array_busqueda = array();
  2. $array_busqueda[] = $buscar;
  3. echo implode("+",$array_busqueda);

intentalo y comenta resultados
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 01/02/2010, 14:53
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: agregar un caracter a cada elemento del array

no funcionó.
creo que tiene que ver con que primero debería "separar" los términos que vienen en la variable de "buscar". Es decir, tengo un input en un form, que se llama buscar. ahí pongo la frase, por ejemplo, "aceite de primula".
aquí lestamos diciendo al php que $buscar es un array, y que haga un implode con el +, pero no le dijimos que separe las palabras por espacios...

también intenté:
Código:
$array_busqueda = array();
$array_busqueda[] = $buscar;
foreach($array_busqueda as $termino)
	{
list($buscar) = explode(" ",$termino);
$parcial_buscar=implode("+",$termino); 
}
echo $parcial_buscar;
pero tampoco...
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #6 (permalink)  
Antiguo 01/02/2010, 14:58
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: agregar un caracter a cada elemento del array

Creo que tu último intento se acerca bastante a lo que yo haría:
Código PHP:
$busqueda=implode('+'explode(' '$busqueda)); 
Si quieres eso puedes ponerlo dentro de un bucle foreach, pero aún no he entendido por qué manejas arrays, a menos que quieras hacer distintas búsquedas. ¡Suerte!
  #7 (permalink)  
Antiguo 01/02/2010, 15:07
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: agregar un caracter a cada elemento del array

Dggluz: lo hago con arrays porque no sabía de qué otra manera separar los elementos que el usuario pueda pasar por el campo "buscar", pero estoy viendo que no era necesario!

Finalmente, usé tuu fórmula y funcionó, era mucho más senicllo de lo que creía.

muchas gracias, me has dado una gran mano!

con este post y el que me ayudó jurena, http://www.forosdelweb.com/f86/consu...0/#post3263682, estoy listo.
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #8 (permalink)  
Antiguo 01/02/2010, 15:11
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: agregar un caracter a cada elemento del array

no...
no funcionó, porque el código queme pasas me pone el más después de cada palabra... y no funciona en boolean mode.
lo intenté alrevés:
$buscar=explode(' ', implode('+ ', $buscar));

pero por $buscar me devuelve "array", y no los valores que le paso por el input
alguna pista?
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #9 (permalink)  
Antiguo 01/02/2010, 15:17
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: agregar un caracter a cada elemento del array

Como yo te pasé tiene que funcionar... en realidad sí usas arrays con el método que te pasé, pero la entrada y la salida de todo son strings... ¿cómo es el resultado que te queda y cómo te gustaría que sea (pon un ejemplo concreto)?, digo, para poder ayudarte. ¡Suerte!

PD: otra opción es usar str_replace o incluso expresiones regulares.
  #10 (permalink)  
Antiguo 01/02/2010, 15:31
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: agregar un caracter a cada elemento del array

Dgg: con lo que me pasaste al principio, me queda así:
aceite+ de+ primula

yo necesitaría que quedé así:
+aceite +de +primula

el tema con el str_replace es que no hay ningun caracter antes de la primera palabra para ser reemplazado con el +. Por eso lo que yo había pensado originalmente (pero no me sale) es obtener todas las palabras por separado, agregarles un + y formar una nueva cadena con todas esas palabras precedidas por el +.

A ver qué puedes hacer...

Gracias!
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #11 (permalink)  
Antiguo 01/02/2010, 15:39
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: agregar un caracter a cada elemento del array

Entonces es tan sencillo como:
Código PHP:
$busqueda='+'.implode(' +'explode(' '$busqueda)); 
O bien:
Código PHP:
$busquda='+'.str_replace(' '' +'$busqueda); 
¡Suerte!
  #12 (permalink)  
Antiguo 01/02/2010, 15:48
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: agregar un caracter a cada elemento del array

Excelente! Ahora sí funcionó
muchas gracias.

un saludo,
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar

Etiquetas: arrays
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 10:52.