-1

有人可以帮我在这里添加一个排序功能...我需要“if”结果按 floorplan_price 进行 ASC 排序。

if ($this->floorplan=ipropertyHTML::getcatfloorplan($this->catinfo->id))
{
echo '<h2 class="ip-floorplan-header" style="margin-top:-50px;color:#B20839; font-weight: bold;">Available Floorplans To Build</h2>';

  $this->k = 0;
  $this->floorplan=ipropertyHTML::getcatfloorplan($this->catinfo->id);

  foreach($this->floorplan as $fp)
  {
    $this->floorplan_price=$fp->floorplan_price;
    $this->floorplaninfo=ipropertyHTML::getfloorplaninfo($fp->floorplan_id);
    $this->p= $this->floorplaninfo;
    echo $this->loadTemplate('floorplan');
    $this->k = 1 - $this->k;
  }}
else { // no results tmpl

    echo '<h2 class="ip-floorplan-header" style="margin-top:-50px;color:#B20839; font-weight: bold;">Available Floorplans To Build</h2>';
    echo '<div class="nofloorplans">No floor plans are available to build at the time. Check back soon!</div>';

} 
4

1 回答 1

0

usort函数允许您提供排序逻辑。

定义排序方法:

function sortByPrice($a, $b)
{
    if ($a->floorplan_price == $b->floorplan_price) {
        return 0;
    }
    return ($a->floorplan_price < $b->floorplan_price) ? -1 : 1;
}

然后在你的 foreach 循环之上

usort($this->floorplan, "sortByPrice");

我会注意到,正如@Sébastien 所做的那样,如果可能的话,这应该是 MySQl 而不是 php 的工作,只是为了提高性能。

于 2013-10-27T19:39:01.220 回答