首页 > 解决方案 > 对数组进行排序比较PHP中的另一个数组

问题描述

我有 2 个数组,其中一个用于订单,另一个用于对实际值进行排序。如何通过比较数组对数组进行排序?任何想法都会非常有帮助。谢谢你。

订单数组:

Array(
[0] => Array
    (
        [code] => subscription_bundles
        [id_sequency] => 1
    )

[1] => Array
    (
        [code] => pre_order
        [id_sequency] => 2
    )

[2] => Array
    (
        [code] => voucher
        [id_sequency] => 3
    )

[3] => Array
    (
        [code] => ppv
        [id_sequency] => 4
    )

[4] => Array
    (
        [code] => ppv_bundle
        [id_sequency] => 5
    )
)

并对数组进行排序:

Array(
[monetization] => Array
    (
        [ppv] => Pay Per View
        [ppv_bundle] => Pay-Per-View Bundle
        [subscription_bundles] => Subscription
        [voucher] => Voucher
    )

标签: phparrays

解决方案


您可以uksort结合使用array_combine从 order 数组创建 key-order 映射。

// create order mapping
$map = array_combine(
    array_column($order, 'code'),
    array_column($order, 'id_sequency')
);

// sort the data
uksort($data, function ($a, $b) use ($map) {
    return $map[$a] - $map[$b];
});

推荐阅读