我正在使用php查询数据库中的表。其中一个字段是一个名为“rank”的列,其数据如下:
none
1-bronze
2-silver
3-gold
...
10-ambassador
11-president
我希望能够根据“排名”列对结果进行排序。任何字段为“无”的结果都会被排除在外,因此这些结果不会被考虑在内。正如您已经猜到的那样,现在结果会像这样回复:
1-bronze
10-ambassador
11-president
2-silver
3-gold
当然,我希望对它进行排序,如下所示:
1-bronze
2-silver
3-gold
...
10-ambassador
11-president
现在,查询将作为对象返回。我尝试过不同的排序选项,比如natsort,sort,array_multisort但是没有按照我确定的方式工作。如果可能的话,我希望将结果保存为对象形式。我将数据传递到下一步的视图。尽管如此,将对象传递给视图然后在那里完成工作是完全可以接受的。所以这毕竟不是问题。 :)
谢谢你的帮助。我希望我有意义。
答案 0 :(得分:0)
使用natsort()
获取数组中的值并在PHP中对其进行排序答案 1 :(得分:0)
如何使用此功能进行排序。我假设如果你得到一个对象你应该将对象转换为数组然后使用这个
function arraySubSort($array, $subkey, $sort = 'asort')
{
foreach($array as $key => $value)
{
$temp[$key] = strtolower($value[$subkey]);
}
$sort($temp);
foreach($temp as $key => $value)
{
$result[] = $array[$key];
}
return $result;
}
$data = $your_array;
$field = 'ranks';
arraySubSort($data,$field);
它将使用您指定的字段对数组进行排序。如果你得到多个记录,那么用它来排序是件好事。
答案 2 :(得分:0)
这将有效 -
SELECT alphanumeric, integer FROM sorting_test ORDER BY LENGTH(alphanumeric), alphanumeric