Foros del Web » Programando para Internet » PHP »

Función para formatear un array

Estas en el tema de Función para formatear un array en el foro de PHP en Foros del Web. Hola, que tal? Estaba buscando una función para manipular arrays en PHP de las tantas que ofrece. No se si soy yo que no se ...
  #1 (permalink)  
Antiguo 23/01/2010, 15:09
 
Fecha de Ingreso: marzo-2009
Mensajes: 47
Antigüedad: 15 años, 1 mes
Puntos: 0
Función para formatear un array

Hola, que tal?

Estaba buscando una función para manipular arrays en PHP de las tantas que ofrece. No se si soy yo que no se buscar o que :P pero no encuentro una función que cumpla este cometido, haber si alguien me puede orientar.

Mi idea es convertir un array en cadena de esta forma:
Por ejemplo tengo un array $a así: (5,3,9,25,4).
Y quisiera que con una función así: funcion( "id = '%s' OR ",$a );, devuelva esta cadena:
id = '5' OR id = '3' OR id = '9' OR id = '25' OR id = '4' OR

¿Existe una función que haga eso?
Gracias.
Un Saludo!
  #2 (permalink)  
Antiguo 23/01/2010, 15:14
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Respuesta: Función para formatear un array

Si lo que intentas hacer una consulta para selecionar en la bd, podrias usar IN enves de estar haciendo todo eso xD (no estoy seguro que se asi :p):
Código SQL:
Ver original
  1. SELECT * FROM tabla WHERE campo IN(5,3,9,25,4)

bueno, volviendo a tu pregunta, puedes probar asi:
Código PHP:
Ver original
  1. // NO PROBE EL CODIGO, LO ESCRIBI RESIEN XD
  2. $a=array(5,3,9,25,4);
  3. $final=array();
  4. foreach($a as $n)
  5. $final[]=' id=\''.$n.'\'';
  6. $final=implode(' OR',$final);
  7. echo $final;
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #3 (permalink)  
Antiguo 23/01/2010, 16:03
 
Fecha de Ingreso: marzo-2009
Mensajes: 47
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Función para formatear un array

En realidad quería saber si existía una función que cumpla el cometido... ya que no solo lo usaría para consultas SQL.

Yo estoy haciendo algo así:
Código PHP:
Ver original
  1. $a = array(5,3,9,25,4);
  2. $q = 'SELECT * FROM tabla WHERE ';
  3. foreach($a as $v)
  4.     $q .= "id=$v OR ";
  5. //Cadena que quiero al final en lugar del OR
  6. $q = substr_replace($q,' ORDER BY id ASC',-4);

No se si ese es el uso de IN en MySQL
[URL="http://dev.mysql.com/doc/refman/5.0/es/any-in-some-subqueries.html"]http://dev.mysql.com/doc/refman/5.0/es/any-in-some-subqueries.html[/URL]

También estuve fijándome en la función FIND_IN_SET...

Un Saludo!
  #4 (permalink)  
Antiguo 23/01/2010, 16:33
 
Fecha de Ingreso: junio-2007
Mensajes: 189
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: Función para formatear un array

No e entendido muy bien tu pregunta, asique voy a poner lo que e entendido, si no es eso, mis disculpas.

Código PHP:
<?php
$a 
= array(5,3,9,25,4);
$t "id = '%s' OR ";
function 
formatear_array($template$array)
{
    if (!
is_array($array) || empty($template))
    {
        return 
false;
    }
    
$string '';
    foreach (
$array as $valor)
    {
        
$string .= str_replace('%s'$valor$template);
    }
    return 
$string;
}

echo 
formatear_array($t$a);
//Imprime: id = '5' OR id = '3' OR id = '9' OR id = '25' OR id = '4' OR 
?>
Lo que se ba a buscar siempre en las cadenas es un %s que será siempre ramplazado por el valor del array en cuestion
  #5 (permalink)  
Antiguo 23/01/2010, 16:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 47
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Función para formatear un array

Eso era justo lo que buscaba, por eso, quería saber si había algo así entre las funciones de PHP, que tengan funcionalidad mas compleja, etc...

Gracias por la ayuda.
Un Saludo!

Etiquetas: formatear
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 23:03.