du8794 2013-03-31 01:27
浏览 38
已采纳

从现有数组创建另一个多维数组并对多维数组进行排序[关闭]

i have question about php arrays. i have array like $data.

$data=array(array('a'=>'1','b'=>'2','c'=>'3','d'=>'4'),array('a'=>'5','b'=>'6','c'=>'7','d'=>'8'),array('a'=>'9','b'=>'10','c'=>'11','d'=>'12'));

i want to get only a,c,d element and create another multi dimensional array like $data1.

$data1=array(
        array('a'=>'1','c'=>'3','d'=>'4'),
            array('a'=>'5','c'=>'7','d'=>'8'),
            array('a'=>'9','c'=>'11','d'=>'12')         
        );

as a next step i wanted to sort $data1 array by first value of d elements then by value of c elements and finally by a elements and get array like $data2.

$data2=array(           
            array('a'=>'9','c'=>'11','d'=>'12')
            array('a'=>'5','c'=>'7','d'=>'8'),
            array('a'=>'1','c'=>'3','d'=>'4')
            );

i need little bit explained answer to each step. i'm stuck in here this problem. i want help.. and are there any php array function available for get $data1 array from $data easily?

  • 写回答

1条回答 默认 最新

  • donglu4633 2013-03-31 02:22
    关注

    This will work in your case..

    $data=array(array('a'=>'1','b'=>'2','c'=>'3','d'=>'4'),array('a'=>'5','b'=>'6','c'=>'7','d'=>'8'),array('a'=>'9','b'=>'10','c'=>'11','d'=>'12'));
    $data1 = array();
    
    //getting data1 by removing the b's 
    
    foreach($data as $d){
       while(list($k,$v) = each($d)){
        if($k == "b"){
            unset($d[$k]);
        }
    }
    array_push($data1, $d);
    }
    
    //Sorting the arrays
    foreach($data1 as $key => $value){
      $ds[$key] = $value["d"];
      $cs[$key] = $value["c"];
      $as[$key] = $value["a"];
    }
    
    array_multisort($ds, SORT_DESC, $cs, SORT_DESC, $as, SORT_DESC, $data1);
    print_r($data1);
    

    This will print:

    Array
    (
    [0] => Array
        (
            [a] => 9
            [c] => 11
            [d] => 12
        )
    
    [1] => Array
        (
            [a] => 5
            [c] => 7
            [d] => 8
        )
    
    [2] => Array
        (
            [a] => 1
            [c] => 3
            [d] => 4
        )
    

    )

    Dins

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c