2012-09-09 240 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值。