2015-01-15 43 views
-5

手工分揀我有以下的數組:PHP的陣列mainting其索引值即鍵

$names=array(
    'john' =>3, 
    'dope' =>2, 
    'seiman'=>4, 
    'hummar'=>1, 
    'vatan' =>5 
); 

我需要排序使用foreachfor環這個陣列。

ALGO 1:這裏是我的代碼:

foreach($names as $key1=>$val1) 
{ 
    // what to write here? 
} 

使用for循環:

for($i=0;$i<count($names)-1;$i++) 
{ 

    for($j=0;$j<count($names)-$i-1;$j++) 
    { 
     if (($names[$keyarray[$j]])>($names[$keyarray[$j+1]])) 
     { 
      $temp1=$names[$keyarray[$j]]; 
      $names[$keyarray[$j]]= $names[$keyarray[$j+1]]; 
      $names[$keyarray[$j+1]]= $temp1; 
      // it copies values but not keys 
     } 
    } 
} 
+2

你要去哪個排序算法使用,因此實現? – 2015-01-15 15:50:44

回答

1

,如果你想通過鍵

ksort($names); 

Array ([dope] => 2 [hummar] => 1 [john] => 3 [seiman] => 4 [vatan] => 5) 

http://php.net/manual/en/function.ksort.php

排序的數組

如果你想通過值排序您的數組:

asort($names); 

Array ([hummar] => 1 [dope] => 2 [john] => 3 [seiman] => 4 [vatan] => 5) 

http://php.net/manual/en/function.asort.php

+0

而不使用用戶定義的功能? – 2015-01-16 04:17:23

+0

如果您只對數組進行排序,則不需要自己的函數。使用這個php函數。 – goldlife 2015-01-16 07:18:03