PHP按一个字段对一个或多个数组进行排序,其中包含4个不同的值
我使用以下PHP创建数组数组: )) 我希望能够按字段“profileStatus”对该数组进行排序 该字段有4个值,我想按以下顺序排序:PHP按一个字段对一个或多个数组进行排序,其中包含4个不同的值,php,Php,我使用以下PHP创建数组数组: )) 我希望能够按字段“profileStatus”对该数组进行排序 该字段有4个值,我想按以下顺序排序: 在线 远离 忙碌的 离线 下一个要排序的字段是heartbeat(这是MySQL日期) 我已经研究了usort()和multiarraysort(),它们似乎没有按字段的不同值排序-我可能错了 我玩了以下游戏,但运气不佳: function cmpDistance($a, $b) { return ($a['distance'] - $b['di
- 在线
- 远离
- 忙碌的
- 离线
function cmpDistance($a, $b) {
return ($a['distance'] - $b['distance']);
}
任何想法——指向正确的方向——都将不胜感激:)
thx您可以使用usort()完美地完成此操作,因此您的方法是正确的。但是,您的usort()回调函数需要进一步增强
<?php
// Let's assign a value to each profile status
$values = array('online' => 1, 'away' => 2, 'busy' => 3, 'offline' => 4);
usort($this->initializeTodayMembersOnlineArray, function($a, $b) use ($values) {
return $values[$a['todayInitializeProfileStatus']] - $values[$b['todayInitializeProfileStatus']];
});
?>
您组织的下一个变量是什么?基本上,如果你有两个“在线”,那么哪个先到有关系吗?Heartbeat是另一个要排序的字段——它是MySQL的DateTime值。Thanksi收到此响应-解析错误:语法错误,意外的“cmp”(T_字符串)-数组是否在此处引起问题