Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 排序simplexml数组_Php_Xml_Simplexml_Sorting - Fatal编程技术网

Php 排序simplexml数组

Php 排序simplexml数组,php,xml,simplexml,sorting,Php,Xml,Simplexml,Sorting,我有一个simplexml数组,我从google上的示例中获得了它。现在我必须对数组进行排序 这就是我所拥有的 $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/>';

我有一个simplexml数组,我从google上的示例中获得了它。现在我必须对数组进行排序

这就是我所拥有的

$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/>';
}
$url='1!'http://api.trademe.co.nz/v1/Member/2128687/Listings/All.xml';
$xml=simplexml\u加载文件($url);
foreach($xml->List->Listing as$List){
echo$list->EndDate;
回声“
”; }
一切都像它应该那样工作。我想按最接近结束日期对其进行排序

我尝试了所有我能找到的例子,我只是不断得到白色屏幕的东西

请帮忙

函数cmp($a,$b)
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);
{ $a=strottime($a->EndDate); $b=strottime($b->EndDate); 如果($a=$b) { 返回0; } 回报率($a<$b)?-1:1; } uasort($xml->List->Listing'cmp'); 打印(数组);
使用
请也粘贴此数组的
var\u dump()
!整个阵列?它相当大,但可能你应该复制这个数组,并在其他数组上工作,而不是从这个对象。你的评论对我来说没有意义。。我不懂编码。你能解释一下吗?如果我想有3个排序选项,下一步是什么。按enddate(最接近的第一个)、按isfeatured(确实是第一个。isfeatured的顺序仍然是按最接近enddate)和按最低价格排序?将列表转换为数组(递归),然后尝试此解决方案进行排序
        $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 />';
        }
    ?>
usort($listingarray,function($obj1,$obj2)
    {   
        $time1 = strtotime($obj1->EndDate); 
        $time2 = strtotime($obj2->EndDate); 

        if($time1 == $time2)
            return 0;

        return ($time1 > $time2 ? -1 : 1);
});