0

这方面有很多主题,但没有一个是我需要的。我有一个包含 fname、lname 等的数组。我需要使用以下代码按 lname 排序:

if ($myvar)

   foreach( $myvar as $key => $row) {

     echo "<p>$row->fname $row->lname";
     echo "$row->intro</p>";

     sort($row->lname);

    } else 

  echo "<p>No Results for your search.</p>";

您可以看到我进行了排序,我也尝试了 ksort 但没有任何反应。我从这个论坛尝试了其他一些东西,但没有运气。顺序错了吗?语法不正确吗?

我对此的了解有限,我认为这样做会更容易!:) 如果可以,请告知。

4

2 回答 2

1
usort($myvar, function($a,$b) {return strcmp($a->lname, $b->lname);});

但是,正如评论中所说,如果这是通过数据库或搜索引擎进行搜索,那么最好让它们对您的东西进行排序。

于 2013-02-01T13:08:50.883 回答
0

在您的代码中,您似乎有一个数组数组。如果您只有一个数组,则不需要在 foreach 中使用排序。排序 - 对数组进行排序,所以直接像这样使用它:

if ($myvar) {
   uasort($myvar, function($a,$b) {return strcmp($a->lname, $b->lname);}));
}else{
    echo "<p>No Results for your search.</p>";
}
于 2013-02-01T13:22:12.180 回答