Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Al generar un json genera cosas de 'mas'

Estas en el tema de Al generar un json genera cosas de 'mas' en el foro de PHP en Foros del Web. Buenos dias a todos/as! Tengo un gran problema en el cual llevo horas invertidas y no logro solucionarlo... Resulta que genero un archivo json vale? ...
  #1 (permalink)  
Antiguo 16/07/2015, 02:06
 
Fecha de Ingreso: enero-2015
Ubicación: Lleida
Mensajes: 27
Antigüedad: 9 años, 10 meses
Puntos: 0
Al generar un json genera cosas de 'mas'

Buenos dias a todos/as! Tengo un gran problema en el cual llevo horas invertidas y no logro solucionarlo... Resulta que genero un archivo json vale? pero al generarlo me genera algo de mas que no se que cojones es ni de donde sale...

Código:
{"type":"user","nombre":"Bruno","likes":"0","liking_you":"0","favs":"0","coffees":"0","coffeed":"0","chats":"0","visits":"0","stateRequest":"","stateCoffee":"","user_id":"46","gender":"tra","thumb":"","location":"lleida","age":"22","latitud":"41.51239","longitud":"0.876399"},[],[],[]]}
//Como podeis ver, estos ultimos campos que pone [],[],[]...

Entonces dije, joder voy a borrar los arrays vacíos aplicando esta condicion.

Código PHP:
$times=count($all_users);
        
        echo
"times: ".$times;
        
        for(
$i=0;$i<$times;$i++)
        {
            if(
count($all_users[$i])==OR $all_users[$i]==NULL)
            unset(
$all_users[$i]);
        } 
Y entonces se borran los campos [],[],[]... que he mostrado antes, pero se genera otra cosa.. TT Ahora se genera como una especie de enumeración:

Código:
"6":{"type":"user","nombre":"Bruno","likes":"0","liking_you":"0","favs":"0","coffees":"0","coffeed":"0","chats":"0","visits":"0","stateRequest":"","stateCoffee":"","user_id":"46","gender":"tra","thumb":"","location":"lleida","age":"22","latitud":"41.51239","longitud":"0.876399"}}}
//El numero 6 del principio de todo...(y así con todos los usuarios e información qe se me muestra


Lo he analizado con el var_dump y decir que, en el primer ejemplo (el de los corchetes [][]..) me devuelve esto:

Código:
[6]=> array(18) { ["type"]=> string(4) "user" ["nombre"]=> string(5) "Bruno" ["likes"]=> string(1) "0" ["liking_you"]=> string(1) "0" ["favs"]=> string(1) "0" ["coffees"]=> string(1) "0" ["coffeed"]=> string(1) "0" ["chats"]=> string(1) "0" ["visits"]=> string(1) "0" ["stateRequest"]=> string(0) "" ["stateCoffee"]=> string(0) "" ["user_id"]=> string(2) "46" ["gender"]=> string(3) "tra" ["thumb"]=> string(0) "" ["location"]=> string(6) "lleida" ["age"]=> string(2) "22" ["latitud"]=> string(8) "41.51239" ["longitud"]=> string(8) "0.876399" } [7]=> array(0) { } [8]=> array(0) { } [9]=> array(0) { } } }
y en el segundo ejemplo, el de la enumeracion me devuelve esto otro:

Código:
[6]=> array(18) { ["type"]=> string(4) "user" ["nombre"]=> string(5) "Bruno" ["likes"]=> string(1) "0" ["liking_you"]=> string(1) "0" ["favs"]=> string(1) "0" ["coffees"]=> string(1) "0" ["coffeed"]=> string(1) "0" ["chats"]=> string(1) "0" ["visits"]=> string(1) "0" ["stateRequest"]=> string(0) "" ["stateCoffee"]=> string(0) "" ["user_id"]=> string(2) "46" ["gender"]=> string(3) "tra" ["thumb"]=> string(0) "" ["location"]=> string(6) "lleida" ["age"]=> string(2) "22" ["latitud"]=> string(8) "41.51239" ["longitud"]=> string(8) "0.876399" } } }

Me estoy desquiciando... a ver si alguien puede ayudarme por favor, un saludo enorme
  #2 (permalink)  
Antiguo 16/07/2015, 02:53
 
Fecha de Ingreso: julio-2015
Ubicación: Palma de Mallorca
Mensajes: 10
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Al generar un json genera cosas de 'mas'

¿porqué no pruebas a hacer algo como esto?

Código PHP:
echo json_encode(array_filter($all_users, function($i) {
    return !empty(
$i);
})); 
  #3 (permalink)  
Antiguo 16/07/2015, 03:49
 
Fecha de Ingreso: enero-2015
Ubicación: Lleida
Mensajes: 27
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Al generar un json genera cosas de 'mas'

Cita:
Iniciado por jmecahansen Ver Mensaje
¿porqué no pruebas a hacer algo como esto?

Código PHP:
echo json_encode(array_filter($all_users, function($i) {
    return !empty(
$i);
})); 
Gracias por la respuesta primero de todo :)

Que haría esto exactamente? no lo acabo de pillar.. :l
  #4 (permalink)  
Antiguo 17/07/2015, 04:53
 
Fecha de Ingreso: julio-2015
Ubicación: Palma de Mallorca
Mensajes: 10
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Al generar un json genera cosas de 'mas'

Lo que haría sería codificar en JSON todos aquellos elementos del array $all_users que no estén vacíos :)
  #5 (permalink)  
Antiguo 20/07/2015, 03:03
 
Fecha de Ingreso: enero-2015
Ubicación: Lleida
Mensajes: 27
Antigüedad: 9 años, 10 meses
Puntos: 0
Exclamación Respuesta: Al generar un json genera cosas de 'mas'

Gracias por vuestras respuestas a los que han contestado, lo logré solucionar borrandolo todo y haciendo el filtro en otro lugar, actualmente ya funciona al 100% !

Etiquetas: cosas, genera, json, usuarios
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 11:25.