[英]How to sort SimpleXMLElement on PHP
我想知道如何使用PHP對簡單的XML元素進行排序。 是的,我發現一些線程可以解決同一主題,但是我無法解決我的問題。
我要排序的XML是:
<?xml version="1.0" encoding="UTF-8"?>
<cursos>
<curso>
<id>DRW</id>
<nome>Design Responsivo</nome>
<categoria>Web</categoria>
<inicio>30/02/2013</inicio>
<periodo>Sábados de manhã</periodo>
<cargaHoraria>40h</cargaHoraria>
<objetivos></objetivos>
</curso>
<curso>
<id>MSQ</id>
<nome>MySQL</nome>
<categoria>Banco de dados</categoria>
<inicio>30/03/2013</inicio>
<periodo>Sábados de manhã</periodo>
<cargaHoraria>20h</cargaHoraria>
<objetivos></objetivos>
</curso>
<curso>
<id>MBY</id>
<nome>Iniciação à informática</nome>
<categoria>Iniciantes e Usuários Av.</categoria>
<inicio>30/04/2013</inicio>
<periodo>Matutino 1</periodo>
<cargaHoraria>80h</cargaHoraria>
<objetivos></objetivos>
</curso>
<curso>
<id>FCS</id>
<nome>Desenvolvendo em C#</nome>
<categoria>Desenvolvimento</categoria>
<inicio>14/04/2013</inicio>
<periodo>Domingo</periodo>
<cargaHoraria>60h</cargaHoraria>
<objetivos></objetivos>
</curso>
<curso>
<id>MAY</id>
<nome>Modelagem em Maya</nome>
<categoria>Artes gráficas</categoria>
<inicio>13/04/2013</inicio>
<periodo>Sábado 08h:00-13h:00</periodo>
<cargaHoraria>60h</cargaHoraria>
<objetivos></objetivos>
</curso>
</cursos>
我發現這和這個解決方案,而是多維數組的XML上應用此邏輯是沒有明確對我來說。 有人能幫我嗎?
提前致謝。
沒有簡單的方法可以使用SimpleXML進行排序。 您將必須使用元素創建一個數組,對其進行排序,然后重建XML:
$d = simplexml_load_string($xml);
// turn into array
$e = array();
foreach ($d->curso as $curso) {
$e[] = $curso;
}
// sort the array
usort($e, function($a, $b) {
return $a->cargaHoraria - $b->cargaHoraria;
});
// put it back together
echo '<cursos>';
foreach ($e as $node) {
echo $node->saveXML();
}
echo '</cursos>';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.