php - 按给定索引对多维数组进行排序 - PHP?

标签 php mysql arrays sorting multidimensional-array

我有两个数组 $days_order$mysql_result,我想使用 $days_order$mysql_result 数组进行排序> 数组。我想按天数升序显示 MySQL 结果?有什么办法可以做到这一点或任何其他方式,以便我可以在 OrderBy 部分的 MySQL 查询中传递 $days_order 吗?

$days_order =  Array([0] => 2[1] => 3[2] => 4[3] => 5 [4] => 6[5] => 7[6] => 1);

$mysql_result = Array (

    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [day] => 3
        )

[1] => Array
    (
        [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
        [title] => Free
        [day] => 2
    )

[2] => Array
    (
        [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
        [title] => Ready
        [day] => 1
    )
)

我想要在 $days_order 中排序的数组

输出:

  Array
(
  [0] => Array
    (
           [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
           [title] => Free
           [day] => 2
    )
  [1] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [day] => 3
        )

  [2] => Array
    (
           [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
           [title] => Ready
           [day] => 1
    )    
)

最佳答案

usort 与自定义比较函数结合使用。

类似于:

usort($ranked, function($a, $b) {
    if ($a['day'] === $b['day']) return 0;

    return ($a['day'] > $b['day']) ? -1 : 1;
});

您可以阅读有关此功能的更多信息 here .

关于php - 按给定索引对多维数组进行排序 - PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31928554/

相关文章:

php - 如何在提交时关闭 fancybox...请需要帮助

PHP 从表中获取 MYSQL id 并在另一个表中获取 foreach

mysql - hibernate中如何处理find_in_set?

java - 在 Java 中将数组添加到队列(指针问题?)

javascript - 为什么 reducer 会忽略数组中的第一项?

php - 避免删除字符串前缀中不需要的字符

PHP Web 套接字 - 无法绑定(bind)到主机

python - 我可以在没有事务的情况下通过 sqlalchemy 执行查询吗

MySQL 处理按小时定义的休息时间

c - C 中的多维 (2D) 数组