我有mysql表,即
id | a | b | c | d |ud_id 1 | 20| 8 | 45| 18| 1
现在我想在php中检索该数据对数组进行排序并找到此示例中的最高字段(c = 45)
$query="SELECT `a`, `b`, `c`, `d` from table where ud_id=1"; $rs=mysql_query($query) or die(mysql_error()); $row=mysql_fetch_array($rs);
但是我如何对这个关联数组进行排序并找到最高的关键字。
答案 0 :(得分:5)
PHP有很多排序功能。
一个听起来像你想要的asort()
请参阅PHP手册,了解其他替代方案,例如sort()
,ksort()
,natsort()
,usort()
以及其他一些变体。还有shuffle()
随机排序。
[编辑] 好的,一步一步从阵列中获取最高价值:
asort($row); //or arsort() for reverse order, if you prefer.
end($row); //positions the array pointer to the last element.
print current($row); //prints "45" because it's the sorted highest value.
print key($row); //prints "c" because it's the key of the hightst sorted value.
还有很多其他方法可以做到。
答案 1 :(得分:2)
就像@Spudley所说,arsort
就是答案。您可以通过获取其array_keys
的第一个键来获取结果数组的第一个键。
// ...
$row = mysql_fetch_assoc ($rs);
arsort ($row);
$keys = array_keys ($row);
printf ("key: %s, value: %s", $keys[0], $row[$keys[0]]);
另请注意mysql_fetch_assoc
。
答案 2 :(得分:0)
您可以在查询中进行排序 - 请参阅stackoverflow答案: php, sort an array from mysql