zoukankan      html  css  js  c++  java
  • 将多个多维数组合并为一个多维数组

    数组1:

    $arr1=array(
        array(
            'id'=>1,
            'name'=>'国际新闻'
        ),
        array(
            'id'=>2,
            'name'=>'国内新闻'
        )
    );

    数组2:

    $arr2=array(
        array(
            'id'=>1,
            'name'=>'国际娱乐新闻',
            'tid'=>1
        ),
        array(
            'id'=>2,
            'name'=>'国际体育新闻',
            'tid'=>1
        ),
        array(
            'id'=>3,
            'name'=>'国际时政新闻',
            'tid'=>1
        ),
        array(
            'id'=>4,
            'name'=>'国内娱乐新闻',
            'tid'=>2
        ),
        array(
            'id'=>5,
            'name'=>'国内体育新闻',
            'tid'=>2
        )
    );

    数组3:

    $arr3=array(
        array(
            'id'=>1,
            'title'=>'超甜!英国小哥霉霉演唱会上向女友求婚',
            'ptime'=>'1530235016',
            'cid'=>1
        ),
        array(
            'id'=>2,
            'title'=>'英格兰丢单刀获第2 比利时全胜将战日本',
            'ptime'=>'1530235177',
            'cid'=>2
        ),
        array(
            'id'=>3,
            'title'=>'环球时报社评:美要世界不买伊朗石油 中国怎么办',
            'ptime'=>'1530235270',
            'cid'=>3
        ),
        array(
            'id'=>4,
            'title'=>'陈奕迅赴俄罗斯观看世界杯',
            'ptime'=>'1530235474',
            'cid'=>4
        ),
        array(
            'id'=>5,
            'title'=>'姚明在场下目睹这一幕:中国内线竟被韩国打爆',
            'ptime'=>'1530235548',
            'cid'=>5
        ),
        array(
            'id'=>6,
            'title'=>'2018年世界杯,荷兰、意大利未进入32强',
            'ptime'=>'1530261159',
            'cid'=>2
        ),
        array(
            'id'=>7,
            'title'=>'倪妮baby牵手荡秋千画面文艺唯美 两人灿笑开心的像个孩子',
            'ptime'=>'1530414358',
            'cid'=>4
        )
    );

    合并方法:

    foreach ($arr1 as &$val01) {  //在遍历数组1的同时添加'cates'=>array()元素
        foreach ($arr2 as $val02) {
            if($val01['id']==$val02['tid']){
                $val01['cates'][]=$val02;
            }
        }
    
        //在已按类整合进数组1的'cates'元素下的数组2中添加'arts'=>array()元素
        foreach ($val01['cates'] as &$val03) {  
            foreach ($arr3 as $val04) {
                if($val03['id']==$val04['cid']){
                    $val03['arts'][]=$val04;
                }
            }
        }
    }
    
    echo "<pre>";
    var_dump($arr1);
    echo "</pre>";

    显示结果为:

    array(2) {
      [0]=>
      array(3) {
        ["id"]=>
        int(1)
        ["name"]=>
        string(12) "国际新闻"
        ["cates"]=>
        array(3) {
          [0]=>
          array(4) {
            ["id"]=>
            int(1)
            ["name"]=>
            string(18) "国际娱乐新闻"
            ["tid"]=>
            int(1)
            ["arts"]=>
            array(1) {
              [0]=>
              array(4) {
                ["id"]=>
                int(1)
                ["title"]=>
                string(54) "超甜!英国小哥霉霉演唱会上向女友求婚"
                ["ptime"]=>
                string(10) "1530235016"
                ["cid"]=>
                int(1)
              }
            }
          }
          [1]=>
          array(4) {
            ["id"]=>
            int(2)
            ["name"]=>
            string(18) "国际体育新闻"
            ["tid"]=>
            int(1)
            ["arts"]=>
            array(2) {
              [0]=>
              array(4) {
                ["id"]=>
                int(2)
                ["title"]=>
                string(53) "英格兰丢单刀获第2 比利时全胜将战日本"
                ["ptime"]=>
                string(10) "1530235177"
                ["cid"]=>
                int(2)
              }
              [1]=>
              array(4) {
                ["id"]=>
                int(6)
                ["title"]=>
                string(51) "2018年世界杯,荷兰、意大利未进入32强"
                ["ptime"]=>
                string(10) "1530261159"
                ["cid"]=>
                int(2)
              }
            }
          }
          [2]=>
          array(4) {
            ["id"]=>
            int(3)
            ["name"]=>
            string(18) "国际时政新闻"
            ["tid"]=>
            int(1)
            ["arts"]=>
            array(1) {
              [0]=>
              array(4) {
                ["id"]=>
                int(3)
                ["title"]=>
                string(65) "环球时报社评:美要世界不买伊朗石油 中国怎么办"
                ["ptime"]=>
                string(10) "1530235270"
                ["cid"]=>
                int(3)
              }
            }
          }
        }
      }
      [1]=>
      &array(3) {
        ["id"]=>
        int(2)
        ["name"]=>
        string(12) "国内新闻"
        ["cates"]=>
        array(2) {
          [0]=>
          array(4) {
            ["id"]=>
            int(4)
            ["name"]=>
            string(18) "国内娱乐新闻"
            ["tid"]=>
            int(2)
            ["arts"]=>
            array(2) {
              [0]=>
              array(4) {
                ["id"]=>
                int(4)
                ["title"]=>
                string(36) "陈奕迅赴俄罗斯观看世界杯"
                ["ptime"]=>
                string(10) "1530235474"
                ["cid"]=>
                int(4)
              }
              [1]=>
              array(4) {
                ["id"]=>
                int(7)
                ["title"]=>
                string(77) "倪妮baby牵手荡秋千画面文艺唯美 两人灿笑开心的像个孩子"
                ["ptime"]=>
                string(10) "1530414358"
                ["cid"]=>
                int(4)
              }
            }
          }
          [1]=>
          &array(4) {
            ["id"]=>
            int(5)
            ["name"]=>
            string(18) "国内体育新闻"
            ["tid"]=>
            int(2)
            ["arts"]=>
            array(1) {
              [0]=>
              array(4) {
                ["id"]=>
                int(5)
                ["title"]=>
                string(63) "姚明在场下目睹这一幕:中国内线竟被韩国打爆"
                ["ptime"]=>
                string(10) "1530235548"
                ["cid"]=>
                int(5)
              }
            }
          }
        }
      }
    }
  • 相关阅读:
    [ActionScript3.0] 运用JPEGEncoderOptions或者PNGEncoderOptions保存图片到本地
    [AIR] 在 Adobe AIR 中为不同屏幕尺寸的多种设备提供支持
    [ActionScript 3.0] flash如何访问父级或者舞台上的变量、函数等的方法
    [ActionScript 3.0] 自定义顶级类
    [ActionScript&Flex] FlashBuilder编译条件之如何屏蔽调试代码
    [ActionScript 3.0] LocalConnection示例
    [ActionScritp 3.0] 使用LocalConnection建立通信
    [AIR] Screen 的应用
    [ActionScript 3.0] AS3 对XML的操作,创建、删除、增加节点方法
    [ActionScript 3.0] AS3.0 水面波纹效果
  • 原文地址:https://www.cnblogs.com/zhouwanqiu/p/9385509.html
Copyright © 2011-2022 走看看