对一个二维数组进行排序

4

我是PHP的新手。我有一个二维PHP数组。"内部"数组有一个值,我想要根据它进行排序。

例如:

$myarray[1]['mycount']=12
$myarray[2]['mycount']=13
$myarray[3]['mycount']=9

我希望您能帮我将“内部”数组按降序排序。
因此,以下结果将为13、12、9。
foreach ($myarray as $myarr){
  print $myarr['mycount']
}

感谢您的提前帮助。
2个回答

7
你可以使用 usort(); 函数按照用户定义的比较方式进行排序。
// Our own custom comparison function
function fixem($a, $b){
  if ($a["mycount"] == $b["mycount"]) { return 0; }
  return ($a["mycount"] < $b["mycount"]) ? -1 : 1;
}

// Our Data
$myarray[0]['mycount']=12
$myarray[1]['mycount']=13
$myarray[2]['mycount']=9

// Our Call to Sort the Data
usort($myArray, "fixem");

// Show new order
print "<pre>";
print_r($myArray);
print "</pre>";

我遇到了以下错误:“sort()期望参数2为long,但给定的是数组”。 - Tihom
我将排序函数命名为sort,但该名称已被占用。现在我将其更改为cmp。但是我遇到了不同的错误:usort() [function.usort]: Invalid comparison function。 - Tihom
我在stackoverflow上找到了另一篇帖子。我需要调用array($this, 'compare_label')。谢谢,现在一切都正常了! - Tihom


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接