2 votos

Como filtrar un JSON?

Tengo el siguiente archivo JSON: https://goo.gl/K4AFJ7

Quisiera saber como puedo filtrar para que en un archivo php solo me vote los resultados cuyo nombre sea "miguel" y id_sede sea igual a "2"

Y si es posible con jquery tambien pero preferiblemente con PHP ya que en jquery he visto un ejemplo parecido:

http://jsbin.com/yakubixi/4/edit?html,js,output

1 votos

No me aparece ningun json en https://goo.gl/K4AFJ7

2voto

Ivan Muñoz Puntos1120

No pude encontrar tu json asique arme uno simple que creo que sirve como ejemplo para lo que quieres

Para hacer el filtrado en Javascript no es necesario usar jquery:

var json=[{"Nombre":"miguel","id_sede":"2", "id_unico" : 1 },
{"Nombre":"hernan","id_sede":"6", "id_unico" : 2},
{"Nombre":"hernan","id_sede":"2", "id_unico" : 3},
{"Nombre":"miguel","id_sede":"2", "id_unico" : 4},
{"Nombre":"jose","id_sede":"1", "id_unico" : 5},
{"Nombre":"jose","id_sede":"4", "id_unico" : 6},
{"Nombre":"miguel","id_sede":"4", "id_unico" : 7},
{"Nombre":"hernan","id_sede":"4", "id_unico" : 8}];

var filtrado = json.filter(function (v){return v.Nombre == 'miguel' && v.id_sede == 2});

Y en php es muy parecido:

$array = json_decode(
    '[{"Nombre":"miguel","id_sede":"2", "id_unico" : 1 },
    {"Nombre":"hernan","id_sede":"6", "id_unico" : 2},
    {"Nombre":"hernan","id_sede":"2", "id_unico" : 3},
    {"Nombre":"miguel","id_sede":"2", "id_unico" : 4},
    {"Nombre":"jose","id_sede":"1", "id_unico" : 5},
    {"Nombre":"jose","id_sede":"4", "id_unico" : 6},
    {"Nombre":"miguel","id_sede":"4", "id_unico" : 7},
    {"Nombre":"hernan","id_sede":"4", "id_unico" : 8}]'
    );

$filtrado = array_filter($array, function($val) { return $val->Nombre == 'miguel' && $val->id_sede == 2; });

Espero que te sirva, saludos :)

1 votos

Grande IVAN como siempre vente a Perú hermano :D solo me quedo una duda, y como hago un while o un for dentro para que se cree el json?

2 votos

mmm dentro de donde? para crear el json el php puedes hacer json_encode($filtrado); y el Javascript JSON.stringify(filtrado); , pero nose cual es tu duda

2 votos

De que parte de Perú sos?

1 votos

Lima Perú Ivan, osea me refiero a hacer un for dentro del array para que tome los registros de la consulta para que por ejemplo nombre = $user[$i]["nombre"]; no se si me llegas a entender

1 votos

con hacer un while, for o foreach de $filtrado podes recorrerlo

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: