1

关于这些元素如何在不同的数组“$sorting_order”中排序,我想对数组“$to_sort”中的元素进行排序。

但是,我不知道如何处理两个数组包含不同元素的情况。

$sorting_order[]=[introduction,skills,education,experience]
$to_sort[]=[experience,skills,education]

这是期望的结果:

$sorted[]=[skills,education,experience]

**解决方案:我得到了这个解决方案,

$sorted = array_intersect($sorting_order, $to_sort);
print_r($sorted);

**

4

1 回答 1

1

我会这样处理:

a1)使用翻转array_flip();这将创建一个映射,其中字符串值作为键,序数值作为值。

2) 使用 1) 中的地图usort()

$amap = array_flip($a);
usort($b, function($str1, $str2) use ($amap) {
    $key1 = $amap[$str1]; // decide what to do if the key doesn't exist
    $key2 = $amap[$str2];

    if ($key1 > $key2) {
        return 1;
    } elseif ($key1 == $key2) {
        return 0;
    } else {
        return -1;
    }
});
于 2012-08-08T06:05:16.590 回答