PHP按数组排序,匹配键

PHP按数组排序,匹配键,php,arrays,drupal,Php,Arrays,Drupal,我的第一个阵列: normalArray ( [0] => Business Class [2] => Economy [6] => First Class ) 我的排序数组: sortArray ( [0] => Economy [1] => Business Class [2] => First Class ) 我正试图得到这个结果 resultsArray ( [2] => Economy

我的第一个阵列:

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
)
请注意,键和值需要遵循正确的顺序。因此,我需要按数组对数组进行排序,同时保留值的键

我四处搜索,看了很多不同的例子

谢谢

试试这个:

$map = array_flip($sortArray);
uasort($normalArray,function($a,$b) use ($map) {return $map[$a] < $map[$b] ? -1 : 1});
$map=array\u flip($sortArray);
uasort($normalArray,function($a,$b)use($map){return$map[$a]<$map[$b]?-1:1});
试试这个:

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

我相信你要找的是。

我相信你要找的是。

试试这个或

例如:

<?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";
}
?>
 normalArray
(
    [0] => Economy
    [2] => Business Class
    [6] => First Class
)
有关排序函数属性的更多信息,请查看此

这可能对你有帮助。

试试这个或

例如:

<?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";
}
?>
 normalArray
(
    [0] => Economy
    [2] => Business Class
    [6] => First Class
)
有关排序函数属性的更多信息,请查看此

这对你有帮助。

试试这个

例如:

<?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";
}
?>
 normalArray
(
    [0] => Economy
    [2] => Business Class
    [6] => First Class
)
上述示例将输出:

a = orange
d = lemon
b = banana
c = apple
resultsArray
(
    [2] => Business Class
    [0] => Economy
    [6] => First Class
)
试试这个

例如:

<?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";
}
?>
 normalArray
(
    [0] => Economy
    [2] => Business Class
    [6] => First Class
)
上述示例将输出:

a = orange
d = lemon
b = banana
c = apple
resultsArray
(
    [2] => Business Class
    [0] => Economy
    [6] => First Class
)
这将维护数组的索引

参考:

这将维护数组的索引


参考:

@tony你用什么来排序数组?@tony你用什么来排序数组?做一个arsort或asort不能提供我想要的结果。顺序必须与我的排序数组相同。不仅仅是按字母顺序检查。感谢resultsArray([2]=>经济舱[0]=>商务舱[6]=>头等舱)做了一个排序或排序没有提供我想要的结果。顺序必须与我的排序数组相同。不仅仅是按字母顺序检查。感谢resultsArray([2]=>Economy[0]=>Business Class[6]=>First Class)如果端口未提供我要查找的相同结果,则结果顺序需要与我的其他数组相同。如果端口未提供我要查找的相同结果,则结果顺序需要与我的其他数组相同。