請教一個PHP排序的問題

來源:互聯網
上載者:User
我要對數組進行數值排序,代碼如下:

$a = array('a' => 10, 'z' => 10, 'c' => 10, 'b' => 11, 'd' => 10);asort($a, SORT_NUMERIC);var_dump($a);

列印結果如下:

array(5) {  'd' =>  int(10)  'a' =>  int(10)  'c' =>  int(10)  'z' =>  int(10)  'b' =>  int(11)}

問題:

  • 我需要對數值進行排序(已實現)
  • 若數值相同,則數組鍵的順序位置不改變,請問如何做到

舉例:
上面的數組

$a = array('a' => 10, 'z' => 10, 'c' => 10, 'b' => 11, 'd' => 10);

根據上面排序後,鍵的順序依次為

d => 10, a => 10, c => 10, z => 10, b => 11

我希望能實現的順序為為

a => 10, z => 10, c => 10, d => 10, b => 11

回複內容:

我要對數組進行數值排序,代碼如下:

$a = array('a' => 10, 'z' => 10, 'c' => 10, 'b' => 11, 'd' => 10);asort($a, SORT_NUMERIC);var_dump($a);

列印結果如下:

array(5) {  'd' =>  int(10)  'a' =>  int(10)  'c' =>  int(10)  'z' =>  int(10)  'b' =>  int(11)}

問題:

  • 我需要對數值進行排序(已實現)
  • 若數值相同,則數組鍵的順序位置不改變,請問如何做到

舉例:
上面的數組

$a = array('a' => 10, 'z' => 10, 'c' => 10, 'b' => 11, 'd' => 10);

根據上面排序後,鍵的順序依次為

d => 10, a => 10, c => 10, z => 10, b => 11

我希望能實現的順序為為

a => 10, z => 10, c => 10, d => 10, b => 11

http://3v4l.org/fsQkS

function hasort($arr) {    $a = $b = array();    foreach($arr as $v => $k) $a[$k][] = $v;    ksort($a);    foreach($a as $v => $i)         foreach($i as $k) $b[$k] = $v;    return $b;}$a = array('a' => 10, 'z' => 10, 'c' => 10, 'b' => 11, 'd' => 10);$a = hasort($a);print_r($a);/**Array(    [a] => 10    [z] => 10    [c] => 10    [d] => 10    [b] => 11)**/
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.