首页 文章

如何在php中对关联数组进行排序

提问于
浏览
2

我有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);

但是我如何对这个关联数组进行排序并找到最高的关键字 .

3 回答

  • 0

    PHP有一大堆排序功能 .

    一个听起来像你想要的是asort()

    有关其他替代方法,请参阅PHP手册,例如 sort() ,_ ksort()natsort() ,_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _还有 shuffle() 随机排序 .

    [编辑]好的,一步一步从阵列中获取最高 Value :

    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.
    

    还有很多其他方法可以做到这一点 .

  • 5

    就像@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

    您可以在查询中进行排序 - 请参阅stackoverflow答案:php, sort an array from mysql

相关问题