我有这个simplexml数组,我设法从谷歌的例子开始工作。现在我必须对数组进行排序。
这就是我所拥有的。
$url = 'http://api.trademe.co.nz/v1/Member/2128687/Listings/All.xml';
$xml = simplexml_load_file($url);
foreach($xml->List->Listing as $list){
echo $list->EndDate;
echo '<br/>';
}
一切都按照它应该的样子运作。我想按最接近结束日期排序。
我已经尝试了所有可以找到的例子,而且我只是不断获得白屏。
请帮忙!
答案 0 :(得分:0)
function cmp($a, $b)
{
$a = strtotime($a->EndDate);
$b = strtotime($b->EndDate);
if ($a == $b)
{
return 0;
}
return ($a < $b) ? -1 : 1;
}
uasort($xml->List->Listing, 'cmp');
print_r($array);
答案 1 :(得分:0)
使用usort
$xml = simplexml_load_file($url);
$listingarray = (array)$xml->List;
$listingarray = $listingarray['Listing'];
function compare($obj1,$obj2)
{
$time1 = strtotime($obj1->EndDate);
$time2 = strtotime($obj2->EndDate);
if($time1 == $time2)
return 0;
return ($time1 > $time2 ? -1 : 1);
}
usort($listingarray,'compare');
foreach($listingarray as $list)
{
echo $list->EndDate . '<br />';
}
?>
如果您的php版本&gt; = 5.3,您可以将比较函数内联编写为参数..
usort($listingarray,function($obj1,$obj2)
{
$time1 = strtotime($obj1->EndDate);
$time2 = strtotime($obj2->EndDate);
if($time1 == $time2)
return 0;
return ($time1 > $time2 ? -1 : 1);
});