2011-02-25 33 views
2

爲什麼4是$ ar2中的第一個值?我很確定4應該在排序後的數組的末尾,因爲它自然排序爲SORT_ASC。PHP array_multisort手動示例

<?php 
$ar1 = array(10, 100, 100, 0); 
$ar2 = array(1, 3, 2, 4); 
array_multisort($ar1, $ar2); 

var_dump($ar1); 
var_dump($ar2); 
?> 

在這個例子中,分選後,第一陣列將包含0,10,100,100上。第二陣列將包含在對應於第二陣列4,1,2,3中的條目第一個數組(100和100)中的相同條目也被排序。

array(4) { 
    [0]=> int(0) 
    [1]=> int(10) 
    [2]=> int(100) 
    [3]=> int(100) 
} 
array(4) { 
    [0]=> int(4) 
    [1]=> int(1) 
    [2]=> int(2) 
    [3]=> int(3) 
} 

回答

4

你已經複製它形成該手冊:

在這個例子中,分選後,第一陣列將包含0,10,100,100上。第二陣列將包含4, 1,2,3. 第二個數組中對應於第一個數組(100和100)中的相同條目的條目也被排序。

這意味着第二陣列是由第一陣列的順序(第一陣列限定了爲使第二陣列)

$ar24對應於0$ar1排序。 0位於$a1的第一位,因此4$ar2中的第一位。