在PHP中对两个相应的数组进行排序

时间:2014-01-21 20:23:24

标签: php arrays sorting

我有两个数组,都有数字但是从数据库中按特定顺序提取。 所以我想做的是在加入模式中对其中一个进行排序,第二个数组重新排列它的值以对应第一个。 例如

$firstarray=array(14,30,20);
$secondarray=array(4,2,3);

所以在我们的例子中,我需要第一个数组成为(14,20,30),可以用sort函数制作,但第二个也必须变成(4,3,2)与第一个数组对应。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

您可以使用array_combine创建一个数组,然后对其进行排序

答案 1 :(得分:2)

您需要使用array_multisort

$firstarray=array(14,30,20);
$secondarray=array(4,2,3);

array_multisort($firstarray, $secondarray);

var_dump($firstarray, $secondarray);

在线演示:http://ideone.com/FyU1cl

答案 2 :(得分:0)

您可以使用array_combine将第一个数组用作,将第二个数组用作

$firstarray=array(14,30,20);
$secondarray=array(4,2,3);

$Array = array_combine($firstarray, $secondarray);

<强>输出:

Array
(
    [14] => 4
    [30] => 2
    [20] => 3
)

然后按键asc。

ksort($Array);

<强>输出:

Array
(
    [14] => 4
    [20] => 3
    [30] => 2
)

如果你想要一个单独的$ secondarray你可以做:

$secondarray = array_values($Array);
$secondarray = array_flip($secondarray); // Values are keys now.