2012-03-29 100 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