我使用这个形成了这个对象数组:
foreach($snapdealProductCollection as $snapdealProduct){
$item = new stdClass();
$item->id = $snapdealProduct->getId();
$item->vendortype=2;
$item->name = $snapdealProduct->getTitle();
$item->imgsrc = $snapdealProduct->getImageLink();
$item->price = $snapdealProduct->getEffectivePrice();
$item->source = "Snapdeal.com";
$item->redirectUrl = $snapdealProduct->getLink().$affProgram;
$item->type = $snapedealType[$snapdealProduct->getId()];
$item->simid = $snapdealsimid[$snapdealProduct->getId()];
$item->stype = 2;
$i++;
array_push($items, $item);
}
我需要先按类型排序,然后按simid排序。我该如何排序? 完整代码:
$unsortedItems = $this->getSimilarItems($pid);
$vendors=$this->getAllVendors();
usort($unsortedItems , array($this, "cmp"));
function cmp($a, $b)
{
return strcmp($a->type, $b->type) || strcmp($a->simid, $b->simid);
}
$ unSortedItems是从foreach块返回的数组
答案 0 :(得分:0)
基本上你比较第一个字段第一个字段和第二个第二个字段: - )
function cmp($a, $b) {
return strcmp($a->type, $b->type) || strcmp($a->simid, $b->simid);
}
如果第一个比较返回0,则将评估第二个比较。 你可以写更长的时间:如果第一个字段相等,则比较另一个字段,否则返回第一个比较的结果。
答案 1 :(得分:0)