Foros del Web » Programando para Internet » PHP »

Separar array por comas y borrar espacios en blanco

Estas en el tema de Separar array por comas y borrar espacios en blanco en el foro de PHP en Foros del Web. Hola amigos, de nuevo por aquí. Tengo el siguiente código: Código HTML: <form name= "input" action= "<?php echo $_SERVER['PHP_SELF']; ?>" method= "post" > Tareas a ...
  #1 (permalink)  
Antiguo 09/11/2010, 20:47
 
Fecha de Ingreso: junio-2010
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Separar array por comas y borrar espacios en blanco

Hola amigos, de nuevo por aquí. Tengo el siguiente código:

Código HTML:
<form name="input" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

Tareas a realizar<input type="text" name="tareas" />
<br/>
Nombre de los compa&ntilde;eros <input type="text" name="inquilinos" />
<br/>
<input type="submit" value="Enviar" /></form> 
Código PHP:
$tareas $_POST['tareas'];
$inquilinos $_POST['inquilinos'];
$inquilinos strip_tags($inquilinos);
$inquilinos str_replace(",","",$inquilinos);
$inquilinos explode(" "$inquilinos);
$tareas str_replace(",","",$tareas);
$tareas explode(" "$tareas); 
Al escribir en el formulario pretendo que cada nuevo valor del array solo se
genere si separas las palabras por comas. Además quiero borrar los espacios
en blanco entre valores y que en cada valor del array no haya más de un espacio
por palabra.
Espero haberme explicado bien.
Un abrazo y gracias por anticipado.
  #2 (permalink)  
Antiguo 09/11/2010, 22:36
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Separar array por comas y borrar espacios en blanco

Saludos

Esto pienso te puede orientar

Cita:
cada nuevo valor del array solo se
genere si separas las palabras por comas
Código PHP:
$var explode(","$var ); 
Cita:
Además quiero borrar los espacios
en blanco entre valores
Código PHP:
$var str_replace(" ","",$var ); 
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 10/11/2010, 07:17
 
Fecha de Ingreso: junio-2010
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Separar array por comas y borrar espacios en blanco

Cita:
Iniciado por Nano_ Ver Mensaje
Saludos

Esto pienso te puede orientar



Código PHP:
$var explode(","$var ); 


Código PHP:
$var str_replace(" ","",$var ); 
Gracias.Funciona, pero tiene un inconveniente, si separo cada item por más de una coma me genera espacios entre ítmes que en mi caso se convierten en celdas vacías que me descuadran toda la tabla html.

Esta es la funcion que procesa el array:
Código PHP:
<?php

function crear_planning($tareas,$inquilinos)

    {

echo 
'<table id="planning" summary="Employee Pay Sheet">';
   echo 
"<thead>";
        echo 
"<tr>";
            for (
$index=0$index<count($tareas);$index++)
            {
        
                echo 
'<th scope="col">'
                echo 
$tareas[$index];
                echo 
"</th>";
        
            }
    
                echo 
"</tr></thead>";
                echo 
"<tbody>";
                    echo
"<tr>";
                    
            for (
$index=0$index<count($tareas);$index++)
            {
                foreach(
$inquilinos as $value)
        
                {
                    echo
"<td>";
                    echo 
$value;
                    echo 
"</td>";
                }
        
            
$aux=array_pop($inquilinos);
            
array_unshift($inquilinos,$aux);
            
            
            echo 
"</tr>";
            
            }
        
                echo 
"</tbody>";
                    echo 
"</table>";
                        echo 
"</tbody>";
                            echo 
"</table>";

    }
?>
A ver si se os ocurre algo. Gracias!
  #4 (permalink)  
Antiguo 10/11/2010, 08:50
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Separar array por comas y borrar espacios en blanco

¿A ver si se nos ocurre algo?

¿A ti no se te ocurre nada?

Te dejo 2 pistas : trim - array_map
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #5 (permalink)  
Antiguo 10/11/2010, 17:53
 
Fecha de Ingreso: junio-2010
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Separar array por comas y borrar espacios en blanco

Cita:
Iniciado por spider_boy Ver Mensaje
¿A ver si se nos ocurre algo?

¿A ti no se te ocurre nada?

Te dejo 2 pistas : trim - array_map
Vale, con trim borro los espacios en blanco, pero no las comas.
Tengo este código tras el formulario que puse al principio:

Código PHP:
$tareas $_POST['tareas'];
$inquilinos $_POST['inquilinos'];
$inquilinos strip_tags($inquilinos);
$tareas strip_tags($tareas);


$inquilinos explode(","$inquilinos);
$tareas explode(","$tareas);



echo 
"tareas <br/>";
print_r($tareas);
echo 
"<br/>inquilinos<br/>";
print_r($inquilinos); 
el problema que tengo es que al hacer que el separador del explode sea una coma, si escribes un montón de comas en el formulario la salida que da el array son ítems vacíos.
Con las últimas líneas de abajo lo pude visualizar.
Lo que quiero es borrar todas las comas que hay entre items excepto una.
Así no pueden generarse valores vacíos en la matriz.

Un saludo y gracias de antemano.
  #6 (permalink)  
Antiguo 10/11/2010, 22:22
 
Fecha de Ingreso: junio-2010
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Separar array por comas y borrar espacios en blanco

hice una pequeña función:

Código PHP:
  function borrar_comas($cadena)
   {
   
$separador",";
 
$total_separadores=substr_count($cadena,$separador);
//echo $total_separadores;
 
if ($total_separadores>1)
 
 {
 
 
$total_cadena=strlen($cadena);
// echo $total_cadena;
 
for ($i=$total_cadena;$i>$total_cadena-$total_separadores;$i--)
      { 
     
     
$cadena[$i]=$coma;
     
str_replace(",","",$coma);
     
      }
      return 
$cadena;
 }
   } 
borra las últimas comas excepto la última. me pregunto si de esta forma, acoplando esta función en algún sitio puedo solucionar mi problema, que repito es:
al enviar por el formulario y separar cada valor por comas, si les pongo más de de una coma detras, se generan tantos valores vacíos (o arrays vacíos) como comas. Además, si la última palabra lleva una coma y a continuación no se escribe otra, también se genera un array vacío después de la última palabra.

Bueno, de nuevo vuelvo a daros las gracias por vuestra paciencia.
  #7 (permalink)  
Antiguo 10/11/2010, 22:49
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: Separar array por comas y borrar espacios en blanco

Código PHP:
  function borrar_comas($cadena
   { 
   
$separador"";  // -> OPCION 1 SIN COMA FINAL
 
$total_separadores=substr_count($cadena,$separador); 
//echo $total_separadores; 
 
if ($total_separadores>+1)  // -> OPCION 2 SIN COMA  FINAL

  
 

  
 
$total_cadena=strlen($cadena); 
// echo $total_cadena; 
 
for ($i=$total_cadena;$i>$total_cadena-$total_separadores;$i--) 
      {  
      
     
$cadena[$i]=$coma
     
str_replace(",","",$coma); 
      
      } 
      return 
$cadena
 } 
   } 
  #8 (permalink)  
Antiguo 11/11/2010, 06:08
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Respuesta: Separar array por comas y borrar espacios en blanco

Aunque ya se han propuesto soluciones dejo una funcioncilla adicional con el fin de meter la cuchara. Se le envía la cadena y devuelve el array

Código PHP:
function limpiaValores($string){
    
$string explode(","$string);
    
$salida = array();
    foreach(
$string as $i){
        
$i trim($i);
        if(!empty(
$i)) $salida[] = $i;
    }
    return 
$salida//devuelve un array

Eso si entendí bien el planteamiento

Código PHP:
$inquilinos "pepe, paco,, jose, manolo, pancracio el de la boina ,  , faustino,,,   peperepé ";
$inquilinos limpiaValores($inquilinos);
print_r($inquilinos); 
__________________
Javascript Códigos - Bambú difunde
  #9 (permalink)  
Antiguo 11/11/2010, 08:14
 
Fecha de Ingreso: junio-2010
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Separar array por comas y borrar espacios en blanco

Cita:
Iniciado por tunait Ver Mensaje
Aunque ya se han propuesto soluciones dejo una funcioncilla adicional con el fin de meter la cuchara. Se le envía la cadena y devuelve el array

Código PHP:
function limpiaValores($string){
    
$string explode(","$string);
    
$salida = array();
    foreach(
$string as $i){
        
$i trim($i);
        if(!empty(
$i)) $salida[] = $i;
    }
    return 
$salida//devuelve un array

Eso si entendí bien el planteamiento

Código PHP:
$inquilinos "pepe, paco,, jose, manolo, pancracio el de la boina ,  , faustino,,,   peperepé ";
$inquilinos limpiaValores($inquilinos);
print_r($inquilinos); 
Funciona a la perfección, es lo que buscaba. Gracias de nuevo a todo el mundo por su colaboración. La verdad es que estoy aprendiendo mucho con vuestros aportes. Un saludo.

Etiquetas: blanco, borrar, comas, espacios
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 19:08.