我有两个数组,都有数字但是从数据库中按特定顺序提取。 所以我想做的是在加入模式中对其中一个进行排序,第二个数组重新排列它的值以对应第一个。 例如
$firstarray=array(14,30,20);
$secondarray=array(4,2,3);
所以在我们的例子中,我需要第一个数组成为(14,20,30),可以用sort函数制作,但第二个也必须变成(4,3,2)与第一个数组对应。
有什么想法吗?
答案 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);
答案 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.