Pues esta vez lo que necesito es poder ordenar por la hora y fecha los resultados que muestro en pantalla obtenidos de una base de datos xml. El xml que utilizo no tiene los datos ordenados y para mi es importante mostrar primero los últimos añadidos. En php utilizo Simplexml, por eso, por su simplicidad.
Este es el xml (reducido) que utilizo:
Código XML:
La fecha y hora si las podría obtener en otro formato.Ver original
<?xml version="1.0" encoding="ISO-8859-1" ?> <xml> <alimentos> <documento id="0001"> <fecha_ini>2010-01-01 09:53</fecha_ini> <tipo>alimento</tipo> <name>Arroz Blanco</name> <calorias>354</calorias> <proteinas>7.6</proteinas> <lipidos>1.7</lipidos> <carbohidratos>77</carbohidratos> <descripcion></descripcion> </documento> <documento id="0002"> <fecha_ini>2010-01-03 12:45</fecha_ini> <tipo>alimento</tipo> <name>Arroz integral</name> <calorias>350</calorias> <proteinas>8</proteinas> <lipidos>1.1</lipidos> <carbohidratos>77</carbohidratos> <descripcion></descripcion> </documento> <documento id="0003"> <fecha_ini>2009-10-12 09:34</fecha_ini> <tipo>alimento</tipo> <name>Arroz vaporizado</name> <calorias>343</calorias> <proteinas>8</proteinas> <lipidos>1.2</lipidos> <carbohidratos>75</carbohidratos> <descripcion></descripcion> </documento> </alimentos> </xml>
Y este es el codigo que programe:
Código PHP:
Ver original
<?php echo "<table border='1' >"; echo "<tr>"; echo "<td>Fecha</td>"; echo "<td>Nombre</td>"; echo "<td>Proteinas</td>"; echo "<td>Carbohidratos</td>"; echo "<td>Grasas</td>"; echo "<td>Calorias</td>"; echo "</tr>"; echo "<tr>"; foreach($data->alimentos->documento as $documento){ echo "<td>" . $documento->fecha_ini . "</td>"; echo "<td>" . $documento->name . "</td>"; echo "<td>" . $documento->proteinas . "</td>"; echo "<td>" . $documento->carbohidratos . "</td>"; echo "<td>" . $documento->lipidos . "</td>"; echo "<td>" . $documento->calorias . "</td>"; echo "</tr>"; } echo "</table>"; ?>
¿Habria alguna forma de poder ordenar los resultados que mi xml me de sin que se alterara demasiado el codigo original?. Gracias de antemano...