2011-06-23 50 views
5

¿Alguien me puede ayudar con algo de PHP por favor.PHP: ¿Cómo invertir una matriz JSON

El código original ~ funciona, pero la salida está en el orden incorrecto. Así que necesito REVERVER la secuencia/orden de la matriz JSON.

Pero cuando intento de revertir la secuencia de código con PHP (extracto) a continuación:

$json = file_get_contents($url,0,null,null); 
$tmp = json_decode($json, true); // using a temp variable for testing 
$result = array_reverse($tmp);  // <--new line to reverse the arrray 

foreach ($result['data'] as $event) { 
    echo '<div>'.$event['name'].'</div>'; 

Es imposible invertir la secuencia de salida.

¿Qué estoy haciendo mal? ¿Hay alguna otra/mejor manera?

PD - Puedo hacerlo en Javascript, pero tengo que hacerlo en el lado del servidor.

Respuesta

6

usted hace la reversión, pero en el campo equivocado. Desea invertir los campos data en lugar de la matriz:

$json = file_get_contents($url,0,null,null); 
$tmp = json_decode($json, true); // using a temp variable for testing 
$result = $tmp; 
$result['data'] = array_reverse($result['data']); 

foreach ($result['data'] as $event) { 
    echo '<div>'.$event['name'].'</div>'; 
+0

En toda la lectura que hice nadie lo explicó tan bien como usted Brillante - gracias. @hakre – user801347

4

Debe invertir el contenido de la matriz $tmp['data'], no $tmp.

$json = file_get_contents($url); 
$tmp = json_decode($json, true); 
$result = array_reverse($tmp['data']); 

unset($tmp); 

foreach ($result as $event) { 
    echo '<div>'.$event['name'].'</div>'; 
} 
+0

buena vista ..... – dynamic