2012-09-09 283 views
1

我需要按降序排列數組。我使用asort爲了保存對鍵的正確引用。但是,$ind爲空。爲什麼?按降序對數組進行排序

$selected = array(); 

for ($i=0; $i<10; $i++) { 
    $selected[] = array('ind' => $i, 'rank' => rand(0,10)); 
} 

asort($selected, SORT_NUMERIC); 

$ind = $selected['ind']; 
+1

因爲'$ selected'是數組....你想要一個鍵值爲'$ selected.' – David

+0

$ ind = $ selected [0] ['ind'],它表示$ ind = 0,並且在$ ind = $ selected ['ind'] [0]的情況下,它表示$ ind = null,而$ selected是Array [10] –

回答

0

for()循環後,你有這樣的事情:

Array ( 
    [0] => Array (
     [ind] => NUM 
     [rank] => NUM 
    [1] => Array (
     [ind] => NUM 
     [rank] => NUM 
    etcetcetc.... 
) 

這被稱爲多維數組,並訪問內部陣列以類似的方式爲你做一維數組。

您可以通過$array[0]['ind']或者甚至可以使用foreach()循環訪問它,以便獲取所有值。

$ind = array(); 
foreach($array as $line) { 
    $ind[] = $line['ind']; 
} 

現在$ind陣列具有在一維數組中的所有值,你可以訪問:$ind[0]$ind[1],給您ind值。