douwei1930 2009-10-22 00:59
浏览 11
已采纳

如何在php中以这种方式对数组进行排序

like the function usort in php but if two members compare as equal, their key should be same. for example: $arrayToSort = array(2,6,1,3,3);

after sort return

array
  1 =>  1
  2 =>  2
  3 =>  3
  3 =>  3
  4 =>  6
  • 写回答

5条回答 默认 最新

  • dongyun3335 2009-10-22 01:07
    关注

    Not sure if there's a native function but this might be what you want.

    <?php
    $arr = array(1,2,2,2,3);
    
    function arrayKeyJoin( $arr ) {
        $newArr = array();
        foreach ( $arr as $item ) {
     if ( !in_array( $item, array_keys($newArr) ) ) {
         $newArr[$item] = array();
     }
     array_push( $newArr[$item], $item );
        }
        return $newArr;
    }
    
    echo '<pre>', var_dump( arrayKeyJoin( $arr ) ), '</pre>';
    

    Output:

    array(3) {
      [1]=>
      array(1) {
        [0]=>
        int(1)
      }
      [2]=>
      array(3) {
        [0]=>
        int(2)
        [1]=>
        int(2)
        [2]=>
        int(2)
      }
      [3]=>
      array(1) {
        [0]=>
        int(3)
      }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大