詳細php數組排序函數講解與實現代碼

來源:互聯網
上載者:User

//sort() 函數按升序對給定數組的值排序。

$my_array = array("a" => "dog", "b" => "cat", "c" => "horse");

sort($my_array);
print_r($my_array);

//krsort(array,sorttype)函數將數組按照鍵逆向排序,為數組值保留原來的鍵。
$my_array = array("a" => "dog", "b" => "cat", "c" => "horse");
krsort($my_array);
print_r($my_array);

//看一款執行個體

function natkrsort($array)
{
    $keys = array_keys($array);
    natsort($keys);

    foreach ($keys as $k)
    {
        $new_array[$k] = $array[$k];
    }
  
    $new_array = array_reverse($new_array, true);

    return $new_array;
}

// arsort() arsort() 函數對數組進行逆向排序並保持索引關係。主要用於對那些單元順序很重要的結合數組進行排序。

$my_array = array("a" => "dog", "b" => "cat", "c" => "horse");

arsort($my_array);
print_r($my_array);

//asort() 函數對數組進行排序並保持索引關係。主要用於對那些單元順序很重要的結合數組進行排序

$my_array = array("a" => "dog", "b" => "cat", "c" => "horse");

asort($my_array);
print_r($my_array);

//縮合上面的執行個體,寫一款數組排序函數

/**
 
  * 對數組排序
  * @param array $array 操作的數組
  * @param string $type key按鍵排序,value按值排序
  * @param string $field 欄位名
  * @param string $order 排序方式asc順序desc逆序
  * @return void
  */
 function sort(&$array, $type = 'value', $field = null, $order = 'asc') {
  if ($field) {
   foreach ($array as $key => $value) {
    $temp[$key] = $value[$field];
   }
   if ($order=='asc') {
    asort($temp);
   } else {
    arsort($temp);
   }
   $newarray = array();
   foreach ($temp as $key => $value) {
    $newarray[] = $array[$key];
   }
   $array = $newarray;
  } else {
   if ($type=='key') {
    if ($order=='asc') {
     ksort($array);
    } else {
     krsort($array);
    }
   } else {
    if ($order=='asc') {
     asort($array);
    } else {
     arsort($array);
    }
   }
  }
 }
  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.