Trato de ordenar un xml con varios atributos pero no he podido, el siguiente codigo lo uso para ordenar un atributo:
Código PHP:
$sxml = simplexml_load_file("nombres.xml");
$res = $sxml->xpath("/usuarios/id");
$posts = array();
foreach($res as $art2)
{
$posts[] = (string) $art2->nombre;
}
sort($posts);
$clength=count($posts);
for($x=0;$x<$clength;$x++)
{
echo $posts[$x];
echo "<br>";
}
Estoy tratando de organizarlos con varios atibutos con el siguiente codigo pero no he podido:
Código PHP:
$sxml = simplexml_load_file("nombres.xml");
$res = $sxml->xpath("/usuarios/id");
function ordenar ($t1, $t2)
{
return strcmp($t1['nombre'], $t2['nombre']);
}
usort($res, 'ordenar');
foreach( $res as $art )
{
echo $art->nombre;
echo $art->edad;
echo $art->sexo;
echo $art->profesion;
}
Me arroja los resultados pero sin ordenarlos por nombre.
El xml es de la forma:
Código:
<!--?xml version="1.0" encoding="iso-8859-1"?-->
<usuarios>
<id>
<nombre>Felipe Guzman</nombre>
<edad>24</edad>
<sexo>Masculino</sexo>
<profesion>Estudiante</profesion>
</id>
<id>
<nombre>Ivan garcia</nombre>
<edad>26</edad>
<sexo>Masculino</sexo>
<profesion>Contador</profesion>
</id>
</usuarios>
Agradezco su colaboracion