首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自定义ksort排序多维数组

自定义ksort排序多维数组
EN

Stack Overflow用户
提问于 2022-05-23 14:22:13
回答 1查看 48关注 0票数 0

我试图按年份和季度顺序排列多维数组,我尝试过使用ksort,它可以工作,但是我想创建一个使用算法做同样事情的自定义函数。

代码语言:javascript
运行
复制
$custom_table['2019-3']['new_members'] = 100;
$custom_table['2019-4']['new_members'] = 100;
$custom_table['2019-1']['new_members'] = 100;
$custom_table['2019-2']['new_members'] = 100;

array    
  '2020-1' =>   
    array 
      'new_members' => string '100'   
  '2020-2' =>   
    array   
      'new_members' => string '100'   

  '2020-3' => 
    array 
      'new_members' => string '100'   

  '2020-4' => 
    array 
      'new_members' => string '100' 

  '2021-1' => 
    array 
      'new_members' => string '100'

  '2021-2' => 
    array 
      'new_members' => string '100'

  '2021-3' => 
    array 
        'new_members' => string '100'

  '2021-4' => 
    array 
        'new_members' => string '100'

  '2022-1' => 
    array
        'new_members' => string '100'

  '2019-1' => 
    array 
        'new_members' => string '100'

  '2019-2' => 
    array 
    'new_members' => string '100'

  '2019-3' => 
    array 
        'new_members' => string '100'
        
  '2019-4' => 
    array 
        'new_members' => string '100'

我试着用气泡排序算法,但我不知道我做错了什么,因为它不起作用

代码语言:javascript
运行
复制
function table_sort($array){
    
    $length = count($array);
    for ( $i = 0; $i < $length; $i++) { 
        for ( $j =0 ; $j < $length; $j++) { 
            if($array[$i] > $array[$j]){
               $temp = $array[$i];
               $array[$i] = $array[$j];
               $array[$j] = $temp;

            }
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-05-24 10:11:29

代码语言:javascript
运行
复制
function table_sort($array){
    //keep the original array, to merge at the end
    $original_array_values = $array;
    //add return keys of the array
    $array = array_keys($array);

    $length = count($array);
    
    for ( $i = 0; $i < $length; $i++) { 
        for ( $j = 0; $j < $length - 1; $j++) { 
            // echo key($array[$j]) . '<br>';
            if($array[$j] > $array[$j + 1]){
                $temp = $array[$j + 1];
                $array[$j + 1] = $array[$j];
                $array[$j] = $temp;
            }
            


        }//end second loop
    }//end first loop
    //exchange key with value
    $flip_array = array_flip($array);
    return array_merge($flip_array, $original_array_values);

}//end table_sort()
$custom_table = table_sort($custom_table);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72350177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档