PHP按数组排序数组,匹配键

时间:2013-02-06 06:56:20

标签: php arrays drupal

我的第一个阵列:

normalArray
(
    [0] => Business Class
    [2] => Economy
    [6] => First Class
)

我的排序数组:

sortArray
(
    [0] => Economy
    [1] => Business Class
    [2] => First Class
)

我试图将此作为我的结果

resultsArray
(
    [2] => Economy
    [0] => Business Class
    [6] => First Class
)

请注意,键和值需要遵循正确的顺序。所以我需要按数组对数组进行排序,同时保持键的值。

我四处寻找并查看了许多不同的例子。

由于

5 个答案:

答案 0 :(得分:1)

试试这个asort()arsort()

示例:

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
--OR--
arsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

以上示例将输出:

a = orange
d = lemon
b = banana
c = apple

有关更多排序功能属性,请查看此link

这可能对你有所帮助。

答案 1 :(得分:0)

试试这个:

$map = array_flip($sortArray);
uasort($normalArray,function($a,$b) use ($map) {return $map[$a] < $map[$b] ? -1 : 1});

答案 2 :(得分:0)

我相信你要找的是asort

答案 3 :(得分:0)

试试这个arsort()

示例:

 normalArray
(
    [0] => Economy
    [2] => Business Class
    [6] => First Class
)

以上示例将输出:

resultsArray
(
    [2] => Business Class
    [0] => Economy
    [6] => First Class
)

答案 4 :(得分:0)

asort($normalArray);

这维护了数组的索引。

参考:http://php.net/manual/en/function.sort.php