doujiepin5547 2018-06-01 08:22
浏览 50
已采纳

递归函数将多维数组中的特定键移动到其级别的底部

I'm looking for a php (sort?)function which move a specific key ('current_files') to the bottom of its array level.

I have sth like that:

[A] => [
     [current_files] => [
           [0] => ...
           [1] => ...  
     ]
     [D] => [
          [G] => [...]   
          [current_files] => [...]
          [B] => [...]
     ]
]
[current_files] => [...]
[K] => [...]

I need this:

[A] => [
     [D] => [
          [G] => [...]   
          [B] => [...]
          [current_files] => [...]
     ]
     [current_files] => [
           [0] => ...
           [1] => ...  
     ]
]
[K] => [...]
[current_files] => [...]

I know that i need a recursive function like arr_multisort but i dont understand it -_-

  • 写回答

3条回答 默认 最新

  • dpauxqt1281 2018-06-01 09:00
    关注

    Try this

    Written a common function just call that function to move down any key by passing the specific key as argument.

    function sortArrayByKey(&$array, $search_key) {
        $searched_key_arr = array();
        foreach ($array as $k => &$values) {
            if (array_key_exists($search_key, $values)) {
                sortArrayByKey($values, $search_key);
            } else if ($k == $search_key) {
                $searched_key_arr[$k] = $values;
                unset($array[$k]);
            }
        }
        if (!empty($searched_key_arr)) {
            foreach ($searched_key_arr as $key => $val) {
                $array[$key] = $val;
            }
        }
        return $array;
    }
    
    $arr = $this->sortArrayByKey($data, 'current_files'); //$data is your input array
    print_r($arr);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?