如何根据定义键PHP的值对关联数组进行排序


How to sort associative array by value of defined key PHP

想要按键的值对数组进行排序,但在web中找不到解决方案。

我想在PHP中按键is_paid对这个数组DESC进行排序,所以FROM原始数组:

[user_courses] => Array
    (
        [1] => Array
            (
                [paid_course_id] => 1
                [course_name] => english
                [course_label] => English
                [is_paid] => 1
                [time] => 1378925144
                [voucher] => 0
            )
        [2] => Array
            (
                [paid_course_id] => 2
                [course_name] => spanish
                [course_label] => English
                [is_paid] => 0
                [time] => 1379073137
                [voucher] => 0
            )
        [3] => Array
            (
                [paid_course_id] => 3
                [course_name] => russian
                [course_label] => Russian
                [is_paid] => 1
                [time] => 1452277777
                [voucher] => 0

    )
)

成为:

[user_courses] => Array
(
[1] => Array
    (
        [paid_course_id] => 1
        [course_name] => english
        [course_label] => English
        [is_paid] => 1
        [time] => 1378925144
        [voucher] => 0
    )
[3] => Array
    (
        [paid_course_id] => 3
        [course_name] => russian
        [course_label] => Russian
        [is_paid] => 1
        [time] => 1452277777
        [voucher] => 0

)
[2] => Array
    (
        [paid_course_id] => 2
        [course_name] => spanish
        [course_label] => English
        [is_paid] => 0
        [time] => 1379073137
        [voucher] => 0
    )

)

因此,首先列出数组中is_paid为1的所有项,并在数组底部放置is_paid 0

function sortOrder($a, $b) {
    return $a['paid_course_id'] > $b['paid_course_id'];
}
usort($courseArray['user_courses'], 'sortOrder');

或具有匿名功能

usort($courseArray['user_courses'], function($a, $b) {
    return $a['paid_course_id'] > $b['paid_course_id'];
});