Foros del Web » Programando para Internet » PHP »

Arrays + comas

Estas en el tema de Arrays + comas en el foro de PHP en Foros del Web. Buenos dias, necesito lo siguiente. Tengo un array y lo recorro de esta forma: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original foreach ( $productividad as $valor ...
  #1 (permalink)  
Antiguo 09/06/2011, 06:19
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Arrays + comas

Buenos dias, necesito lo siguiente. Tengo un array y lo recorro de esta forma:

Código PHP:
Ver original
  1. foreach($productividad as $valor){
  2.  
  3. $valor= $valor.",";
  4.  
  5. }

Lo que da como resultado:

40,80,20,50,

Lo que quiero hacer es sacarle la ultima coma al string y que me quede:

40,80,20,50

Probe haciendolo de esta forma:

Código PHP:
Ver original
  1. $productividad=substr($valor,0,strlen($valor)-1);

Pro eso me quita todo las comas es decir me devuelve:

40802050

Alguna ayuda?

Gracias!
  #2 (permalink)  
Antiguo 09/06/2011, 06:22
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Arrays + comas

Usa implode.
__________________
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 09/06/2011, 06:25
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Arrays + comas

Ya habia probado con implode pero me da error: invalid arguments passed........

Lo hice de esta forma:

Código PHP:
Ver original
  1. $valor= implode(",", $valor);

De esa forma me sugerias?
  #4 (permalink)  
Antiguo 09/06/2011, 06:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Arrays + comas

Lo debes hacer con la variable de $productividad.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 09/06/2011, 06:29
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Arrays + comas

Hola Zendar.
No tienes que usar foreach. Es tan fácil como:

$valor= implode(",", $productividad);
  #6 (permalink)  
Antiguo 09/06/2011, 06:31
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Arrays + comas

$cadena = 1,2,3,4,
echo $cad = substr($cadena, 0, -1);

1,2,3,4
  #7 (permalink)  
Antiguo 09/06/2011, 06:36
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Arrays + comas

en realidad hago el foreach para que me devuelva el valor como puse anteriormente y luego con ese valor aplico una operacion matematica lo que me queda como un string:

40,80,20,50,

y quiero sacarle a ese string la ultima coma...

el implode no me sirve...
  #8 (permalink)  
Antiguo 09/06/2011, 06:39
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Arrays + comas

te hemos dado varias vias
  #9 (permalink)  
Antiguo 09/06/2011, 06:39
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Arrays + comas

iviamontes hice lo q tu me dijiste:
Código PHP:
Ver original
  1. $productividad= $product_tarea.",";
  2. echo $prod= substr($productividad, 0, -1);

Pro me quita todas las comas...

queda : 40802050
  #10 (permalink)  
Antiguo 09/06/2011, 06:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Arrays + comas

No estás prestando atención, el implode se lo haces a la variable $productividad, como mostró Nexus10.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 09/06/2011, 06:46
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Arrays + comas

abimaelrc.... no me sirve hacerle implode a la variable productividad!
Repito el ejemplo completo:

Código PHP:
Ver original
  1. foreach($productividad as $valor){
  2.  
  3. $prod = ($valor -3)*100
  4.  
  5. $produ= $prod.",";
  6. }
  7. echo $produ      ///// 80,40,20,50,

Lo que quiero lograr es 80,40,20,50
  #12 (permalink)  
Antiguo 09/06/2011, 06:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Arrays + comas

Vale, eso es otra cosa. Entonces sería:

foreach($productividad as $valor){

$prod[] = ($valor -3)*100;

}

$cadena=implode(",", $prod);

A ver ahora.
  #13 (permalink)  
Antiguo 09/06/2011, 06:53
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Arrays + comas

esto funciona, lo acabo de probar

echo $cad = "1,2,3,4,";
echo substr($cad, 0, -1);
  #14 (permalink)  
Antiguo 09/06/2011, 06:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Arrays + comas

Podrías hacer esto
Código PHP:
Ver original
  1. <?php
  2. $foo = array(10, 23.36, 65);
  3. echo implode(',',
  4.     array_map(
  5.         function($value){
  6.             return $value = ($value - 3) * 100;
  7.         },
  8.         $foo
  9.     )
  10. ) . '<br />';
  11.  
  12.  
  13. // o
  14. echo implode(',',
  15.     array_map(
  16.         create_function('$value', 'return $value = ($value - 3) * 100;'),
  17.         $foo
  18.     )
  19. ) . '<br />';
  20.  
  21.  
  22. // o
  23. function calc($value){
  24.     return $value = ($value - 3) * 100;
  25. }
  26. echo implode(',', array_map('calc', $foo)) . '<br />';
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #15 (permalink)  
Antiguo 09/06/2011, 07:01
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Arrays + comas

iviamontes me da esto: 1,2,3,41,2,3,41,2,3,4 cuando deberia dar: 1,2,3,4

y

nexus me da esto: 100100,25100,25,100 Cuando deberia dar: 100,25,100
  #16 (permalink)  
Antiguo 09/06/2011, 07:05
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Arrays + comas

Recien poniendo un separador me quedo esto :

100//100,25//100,25,100//

es como que va agregando elementos a medida que hace el bucle (?
  #17 (permalink)  
Antiguo 09/06/2011, 07:08
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Arrays + comas

amigo !!!!!!

esto es un ejemplo

$cad = "1,2,3,4,";
echo substr($cad, 0, -1);

adaptalo a tus necesidades, pero prueba este codigo solo para que veas que si funciona !!!!
  #18 (permalink)  
Antiguo 09/06/2011, 07:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Arrays + comas

Ya me rindo contigo
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #19 (permalink)  
Antiguo 09/06/2011, 07:10
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Arrays + comas

Que tal Zendar,

Me parece que te estas mareando con algo que es simple, si quieres eliminar la coma al final de un string, puedes utilizar rtrim

Código PHP:
Ver original
  1. echo rtrim($valor, ',');
__________________
http://es.phptherightway.com/
thats us riders :)
  #20 (permalink)  
Antiguo 09/06/2011, 07:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Arrays + comas

A ver Zendar, todos los códigos que te hemos puesto funcionan perfectamente. El problema es que no los estás adaptando a lo que tu tienes.
Primero pusiste un código, luego otro que tenía poco que ver.
O pones todo tu código o pones un ejemplo que se corresponda con lo que tienes, si no es imposible ayudarte.
  #21 (permalink)  
Antiguo 09/06/2011, 07:17
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Arrays + comas

Disculpa Nexus, el codigo es bastante complejo por lo q quise poner una parte q supuse que iba a ser entendible... como dijo masterpuppet con todos los codigos me estuve complicando para hacer algo simple...

Lo que debo hacer es de un string = 100,25,100,

sacarle la ultima coma para que quede= 100,25,100

probe con rtrim($valor, ','); pero saca TODAS las comas quedando como resultado: 10025100

tambien probe con substr y tb me quita todas las comas..

Espero saber explicarme
  #22 (permalink)  
Antiguo 09/06/2011, 07:20
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Arrays + comas

¿¿Pero como te va a sacar todas las comas??.
Supongo que rtrim($valor, ','); lo estarás poniendo fuera del bucle, ¿¿no??.
  #23 (permalink)  
Antiguo 09/06/2011, 07:22
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Arrays + comas

no no no no no
rtim($cad, ',') funciona bien

mi codigo funciona bien y los demás codigos funcionan bien

te hemos dado 3 vias que funcionan bien..., ya me rindo
  #24 (permalink)  
Antiguo 09/06/2011, 07:22
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Arrays + comas

fuera del bucle me muesta un solo valor : 100
  #25 (permalink)  
Antiguo 09/06/2011, 07:23
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Arrays + comas

bueno perdon! no se porq puede ser q a mi me saque todas las comas... voy a seguir intentando sola.. perdon por quitarles el tiempo y la paciencia.. no era mi intencion.
  #26 (permalink)  
Antiguo 09/06/2011, 07:24
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Arrays + comas

Zendar, puedes postear el código completo, tal cual lo estas utilizando ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #27 (permalink)  
Antiguo 09/06/2011, 07:34
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Arrays + comas

Zendar, no te enfades, te queremos ayudar, en serio.

En tu primer post decías que tenías una cadena que te daba:

40,80,20,50,

Es a esa cadena, al final, fuera del bucle, a la que le tienes que aplicar la función rtrim()

En algún sitio habrás puesto un echo para mostrar la cadena. Pues en vez de poner

echo $cad; //40,80,20,50,

pon:

echo rtim($cad, ','); //40,80,20,50
  #28 (permalink)  
Antiguo 09/06/2011, 07:35
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Arrays + comas

No te hagas drama... ya lo estoy tratando de solucionar.. pero vi q los hice molestar y no era mi intencion... Muchas gracias y perdon de veras
  #29 (permalink)  
Antiguo 09/06/2011, 07:36
 
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Arrays + comas

Gracias nexus, puse de esa forma y asi me funciono al fin!! MUCHAS GRACIAS A TODS!!! :D:D
  #30 (permalink)  
Antiguo 09/06/2011, 07:43
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Arrays + comas

perfecto, me alegro

Etiquetas: arrays, comas
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:38.