我想按“命中”对数组进行排序,但我也想查找特定 ID 并将其设置为第一次迭代,然后继续“命中”排序。
例如,我有一个多维数组:
$myarray = array(
array(
"id"=>10,
"hits"=>80
),
array(
"id"=>14,
"hits"=>50
),
array(
"id"=>15,
"hits"=>700
),
array(
"id"=>18,
"hits"=>200
)
);
我想测试 id 是否是特定的东西,即如果 id==18 然后把它放在第一位,然后按点击排序。我将如何使用 usort 和自定义函数来做到这一点?
我想我正在寻找类似的东西:
function customsort($a,$b){
if($a["id"]==18){ //or b==18?
return -1;
} else {
return $a["hits"]>$b["hits"];
}
}
usort($myarray,"customsort");
我想要的结果是订单:
array(
"id"=>18,
"hits"=>200
),
array(
"id"=>14,
"hits"=>50
),
array(
"id"=>10,
"hits"=>80
),
array(
"id"=>15,
"hits"=>700
)
(或者如果它们被标记为 ABCD,那么我需要它是 DBAC)