2012-08-13 2 views
0

내 노드가 숫자 키이므로이 질문의 정확한 중복을 찾을 수 없습니다.날짜로 PHP로 다차원 XML 정렬

[article] => Array 
    (
     [0] => SimpleXMLElement Object 
      (
       [value] => some value 
       [date] => 2012-08-13 18:54:09 
      ) 

     [1] => SimpleXMLElement Object 
      (
       [id] => some more value 
       [date] => 2012-08-09 10:24:06 
      ) 

     [2] => SimpleXMLElement Object 
      (
       [id] => another value 
       [date] => 2012-08-11 20:45:44 
      ) 
    ) 

내가 최선 그렇게 할 수있는 방법 - 아마도 PHP 배열로 XML을 전환 한 후 정렬없이 : 최신 첫 번째 -

나는 날짜를 기준으로이 XML을 정렬 할 필요가있다.

+2

둘 다 http://stackoverflow.com/questions/11940042/sort-multidimensional-xml-with-php-by-date 및 http://stackoverflow.com/questions/3998722/how-to-sort-a- 다차원 xml 파일은 나에게 잘 보입니다. 'xsort()'와'array_multisort()'를 원하지 않는다면, 날짜를 비교하는 커스텀 함수와 함께'usort()'를 사용하면된다. – Savageman

+0

나는 그것을 시도했으나 배열이 xml 객체이기 때문에 작동하지 않는다. –

답변

0

샘플에서 이미 객체 배열이있는 것처럼 보입니다. 따라서 usort이 정상적으로 작동합니다. 당신의 가장 바깥 쪽 변수가 실제로 배열이 아닌 경우

function compare_node_dates($a, $b) 
{ 
    return 
     strtotime((string)$b->date) 
     - 
     strtotime((string)$a->date); 
} 

그러나, 내가 배열을 만들지 않고이 일을 알고 있어요 방법이 있음을 정렬 없다 :

콜백은 다음과 같을 것 , 그리고 그것을 사용하여 새로운 XML을 구축 할 수 있습니다.