考虑以下数组排序关联数组在PHP中有多个条件
$details = array(
array('lname'=>'A', 'fname'=>'P','membkey'=>700,'head'=>'y'),
array('lname'=>'B', 'fname'=>'Q','membkey'=>540,'head'=>'n'),
array('lname'=>'C', 'fname'=>'R','membkey'=>700,'head'=>'n'),
array('lname'=>'D', 'fname'=>'S','membkey'=>540,'head'=>'y'),
array('lname'=>'E', 'fname'=>'T','membkey'=>700,'head'=>'n')
);
在这里我想用头和membkey进行排序。同样membkey元素的顶级元素应该有“头= Y”和作为呼应,
$details = array(
array('lname'=>'A', 'fname'=>'P','membkey'=>700,'head'=>'y'),
array('lname'=>'E', 'fname'=>'T','membkey'=>700,'head'=>'n'),
array('lname'=>'C', 'fname'=>'R','membkey'=>700,'head'=>'n'),
array('lname'=>'D', 'fname'=>'S','membkey'=>540,'head'=>'y'),
array('lname'=>'B', 'fname'=>'Q','membkey'=>540,'head'=>'n')
);
我尝试了如下
function orderbymemberKey($a, $b){
if ($a[membkey] == $b[membkey])
return 0;
return($a[membkey] < $b[membkey])? -1 :1;
}
usort($details, orderbymemberKey);
and it successfully order by membkey.
任何建议,请。
你需要更加清晰。你的问题是一团糟。 – 2010-08-31 05:03:49
为我的答案增加了一个通用的“sort_by”函数,可以让你更容易 – 2010-08-31 07:17:53