2009-12-28 98 views
3

我是PHP新手。我有一个二维的PHP数组。 “内部”数组有一个值,我想排序。排序一个二维数组

例如:

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

欲降序 “内部” 数组进行排序。

所以对于下面的结果将提前13,12,9

foreach ($myarray as $myarr){ 
    print $myarr['mycount'] 
} 

感谢。

回答

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>"; 
+0

我收到以下错误“之类的()预计参数2长,数组给定” – Tihom 2009-12-28 18:50:30

+0

我命名排序排序功能,已被使用。我现在把它改成了cmp。我得到了一个不同的错误:usort()[function.usort]:无效的比较函数 – Tihom 2009-12-28 19:09:59

+0

让我看看你的代码是什么样的。 – Sampson 2009-12-28 19:15:12