2012-03-29 94 views
1

我有两个不同的数组。一个数组,一个人列表。我的另一个阵列,b,他们的年龄列表。我会按数字排序b,然后将其倒转,以便按降序排列。我有这个部分没关系。PHP - 排序两个数组相同的方式

如何对一个(人名列表)进行排序,以便相同的值仍与排序列表配对?

实施例:

一个分别分别

B含有15,12,13,和13含有鲍勃,苏,菲尔,和Jenny。

我希望我的结果是:

一个包含鲍勃,珍妮,菲尔,苏分别

B包含15,13,13和12分别

+0

http://php.net/manual/en/function.sort.php – SuperNoob 2012-03-29 01:18:25

回答

6

http://php.net/manual/en/function.array-multisort.php

使用参考文献中的示例#1:

$a = array('Bob', 'Sue', 'Phil', 'Jenny'); 
$b = array(15, 12, 13, 13); 
array_multisort($a, $b); 
print_r($a); 
> Array 
(
[0] => Bob 
[1] => Jenny 
[2] => Phil 
[3] => Sue 
) 
print_r($b); 
> Array 
(
[0] => 15 
[1] => 13 
[2] => 13 
[3] => 12 
) 
+0

如果使用array_multisort,它们对应的年龄将不匹配。 – 2012-03-29 01:16:31

+2

请将上下文添加到您提供的链接。 – Josh 2012-03-29 01:18:23

+0

你能提供一个例子吗?我似乎无法得到这个工作。 – Confiqure 2012-03-29 01:20:22

5

为什么不只是使用:

$arr = array('Bob'=>15,'Sue'=>12,'Phil'=>13,'Jenny'=>13); 

然后,你可以顺利排序。

+2

例子:'$ c = array_combine($ a,$ b); asort($ c);' – bfavaretto 2012-03-29 01:28:30

+1

以这种方式构建数组也会使其变得简单和可扩展。 在这个结构上,你可以用http://php.net/manual/en/function.rsort.php或者使用php对数组进行排序http://php.net/manual/en/function.ksort.php功能,而不用担心如何反映你的其他aray的变化 – 2012-03-29 01:57:55