dshakcsq64956 2015-06-25 05:27
浏览 67
已采纳

从数组创建新数组

i have this main $rr array.

Array
  (
   [0] => Array
    (
        [id] => 162
        [content] => Kingpabel ATN     - Copy (5) - Copy 20150623113618
        [page_name] => all_users
        [type] => all_users
        [image] => Kingpabel ATN     - Copy (5) - Copy 20150623113618.pdf
        [date_upload] => 2015-01
    )

[1] => Array
    (
        [id] => 144
        [content] => Kingpabel ATN     - Copy (5) - Copy 20150623111159
        [page_name] => all_users
        [type] => all_users
        [image] => Kingpabel ATN     - Copy (5) - Copy 20150623111159.pdf
        [date_upload] => 2015-05
    )

[2] => Array
    (
        [id] => 145
        [content] => Kingpabel ATN     - Copy (6) - Copy 20150623111159
        [page_name] => all_users
        [type] => all_users
        [image] => Kingpabel ATN     - Copy (6) - Copy 20150623111159.pdf
        [date_upload] => 2015-05
    )



[3] => Array
    (
        [id] => 129
        [content] => Kingpabel ATN     - Copy (6) - Copy 20150623094147
        [page_name] => all_users
        [type] => all_users
        [image] => Kingpabel ATN     - Copy (6) - Copy 20150623094147.pdf
        [date_upload] => 2015-06
    )

[4] => Array
    (
        [id] => 165
        [content] => Kingpabel .ATN.     - Copy. - Copy (2) 20150624110802
        [page_name] => all_users
        [type] => all_users
        [image] => Kingpabel .ATN.     - Copy. - Copy (2) 20150624110802.pdf
        [date_upload] => 2016-01
    )

  )

i am tring this code for making array of year and month:

 while($rr=mysql_fetch_array($r))
    {
        //$dall[]=$rr;
        $dt=explode("-",$rr['date_upload']);
         if(count($year)>0)
        {
            if(array_key_exists($dt[0],$year))
            {  
                if(!in_array($dt[1],$year[$dt[0]]))
                {
                 array_push( $year[$dt[0]], $dt[1]);

                }
                  }
            else
            {
                     $ye=$dt[0];
               $year[$ye]= array($dt[1]);

           }
        }
        else
        {
            $ye=$dt[0];
            $year[$ye]=array($dt[1]);
         }


    }

i got this result from above code:

       Array
      (
       [2015] => Array
           (
              [0] => 01
              [1] => 05
              [2] => 06
    )

        [2016] => Array
        (
           [0] => 01
        )

)

i am trying to make array like this according to date_upload field in $rr array above. what modificationas are needed in above code for making array as below?

Array
(
[2015] => Array
    (
        [01] => array(
                     [0]=>array(

                                [id] => 162
                                [content] => Kingpabel ATN     - Copy (5) - Copy 20150623113618
                                [page_name] => all_users
                                [type] => all_users
                                [image] => Kingpabel ATN     - Copy (5) - Copy 20150623113618.pdf
                                [date_upload] => 2015-01
                        )
            )
        [05] => array( 
                    [0]=>array(

                                [id] => 144
                                [content] => Kingpabel ATN     - Copy (5) - Copy 20150623113618
                                [page_name] => all_users
                                [type] => all_users
                                [image] => Kingpabel ATN     - Copy (5) - Copy 20150623113618.pdf
                                [date_upload] => 2015-05
                            )
                    [1]=>array(
                                [id] => 145
                                [content] => Kingpabel ATN     - Copy (5) - Copy 20150623113618
                                [page_name] => all_users
                                [type] => all_users
                                [image] => Kingpabel ATN     - Copy (5) - Copy 20150623113618.pdf
                                [date_upload] => 2015-05
                             )

                    )
        [06] => array(
                        [0]=>array(

                                [id] => 129
                                [content] => Kingpabel ATN     - Copy (5) - Copy 20150623113618
                                [page_name] => all_users
                                [type] => all_users
                                [image] => Kingpabel ATN     - Copy (5) - Copy 20150623113618.pdf
                                [date_upload] => 2015-06
                            )


        )
    )

[2016] => Array
    (
        [01] => array(
                        [0]=>array(

                                [id] => 165
                                [content] => Kingpabel ATN     - Copy (5) - Copy 20150623113618
                                [page_name] => all_users
                                [type] => all_users
                                [image] => Kingpabel ATN     - Copy (5) - Copy 20150623113618.pdf
                                [date_upload] => 2015-05
                            )

        )
    )

)
  • 写回答

2条回答 默认 最新

  • douhuang3740 2015-06-25 05:44
    关注

    You can try:

     $resultant = array();
      foreach($rr as $single) {
       $resultant[date('Y',strtotime($single['date_upload']))][date('m',strtotime($single['date_upload']))][]= $single;
      }
    
     print_r($resultant);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 想写一个文件管理器,加载全部子文件夹后,要一级一级返回
  • ¥99 求购美团闪购医药ISV服务商资质
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?
  • ¥15 请问GPT语言模型怎么训练?
  • ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角
  • ¥15 webots有问题,无响应
  • ¥15 使用VH6501干扰RTR位,CANoe上显示的错误帧不足32个就进入bus off快慢恢复,为什么?
  • ¥15 大智慧怎么编写一个选股程序
  • ¥100 python 调用 cgps 命令获取 实时位置信息