国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php對二維數組按指定鍵值key排序示例代碼

2024-09-04 11:47:01
字體:
來源:轉載
供稿:網友

對二維數組按指定鍵值key排序,對于一些新手朋友或許存在難度,下面為大家介紹下在php中時如何實現的,代碼如下:

  1. function array_sort($array$key){  
  2. if(is_array($array)){  
  3. $key_array = null;  
  4. $new_array = null;  
  5. for$i = 0; $i < count$array ); $i++ ){  
  6. $key_array[$array[$i][$key]] = $i;  
  7. }  
  8. ksort($key_array);  
  9. $j = 0;  
  10. foreach($key_array as $k => $v){  
  11. $new_array[$j] = $array[$v];  
  12. $j++;  
  13. //Vevb.com 
  14. unset($key_array);  
  15. return $new_array;  
  16. }else{  
  17. return $array;  
  18. }  
  19. }  

PHP二維數組按鍵值排序

PHP 中 array_multisort() 可以用來一次對多個數組進行排序,或者根據某一維或多維對多維數組進行排序。關聯鍵名保持不變,但數字鍵名會被重新索引。輸入數組被當成一個表的列并以行來排序,第一個數組是要排序的主要數組。數組中的行(值)比較為相同的話就按照下一個輸入數組中相應值的大小來排序,依此類推。

但是如果需要排序的數組是一個二維數組,需要按照數組的鍵值排序,如下面這個二維數組,需要按照sort鍵名來排序,那么array_multisort() 就無法直接實現了:

  1. $data[5] = array('volume' => 67, 'edition' => 2);$data[4] = array('volume' => 86, 'edition' => 1);$data[2] = array('volume' => 85, 'edition' => 6);$data[3] = array('volume' => 98, 'edition' => 2);$data[1] = array('volume' => 86, 'edition' => 6);$data[6] = array('volume' => 67, 'edition' => 7);// 準備要排序的數組foreach ($data as $k => $v) {  $edition[] = $v['edition'];}array_multisort($edition, SORT_ASC, $data);print_r($data);  

將輸出:

  1. Array(  [0] => Array    (      [volume] => 86      [edition] => 1    )   [1] => Array    (      [volume] => 67      [edition] => 2    )   [2] => Array    (      [volume] => 98      [edition] => 2    )   [3] => Array    (      [volume] => 85      [edition] => 6    )   [4] => Array    (      [volume] => 86      [edition] => 6    )   [5] => Array    (      [volume] => 67      [edition] => 7    ) )  

為了不破壞原有的key,寫了一個排序函數,僅支持二維數組。

  1. /*** 根據數組中的某個鍵值大小進行排序,僅支持二維數組* * @param array $array 排序數組* @param string $key 鍵值* @param bool $asc 默認正序* @return array 排序后數組*/function arraySortByKey(array $array$key$asc = true) {  $result = array();  // 整理出準備排序的數組  foreach ( $array as $k => &$v ) {    $values[$k] = isset($v[$key]) ? $v[$key] : '';  }  unset($v);  // 對需要排序鍵值進行排序  $asc ? asort($values) : arsort($values);  // 重新排列原有數組  foreach ( $values as $k => $v ) {    $result[$k] = $array[$k];  }    return $result;}  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁城县| 铜鼓县| 天等县| 南乐县| 高密市| 安多县| 永福县| 水城县| 海盐县| 丘北县| 襄垣县| 汕尾市| 贵德县| 左权县| 正阳县| 山丹县| 米林县| 托克托县| 尉氏县| 台东县| 永清县| 乐东| 垫江县| 英山县| 乌鲁木齐市| 南乐县| 华坪县| 阿城市| 贵港市| 元氏县| 安阳县| 洪江市| 陆良县| 杂多县| 凤凰县| 乐亭县| 全椒县| 贡嘎县| 武城县| 双辽市| 滨州市|