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)
              }
            }
          }
        }
      }
    }
  • 相关阅读:
    学习html5 中的canvas(一)
    js中的width问题
    css3中我们不知道的一些属性
    css3的渐变效果
    校园商铺-6店铺编辑列表和列表功能-1店铺信息编辑之Dao层开发
    校园商铺-4店铺注册功能模块-14前后端联调技巧细化与总结
    校园商铺-4店铺注册功能模块-13前后端联调验证整体模块功能
    校园商铺-4店铺注册功能模块-12引入kaptcha实现验证码
    11-接下来如何做
    10-K最近邻算法
  • 原文地址:https://www.cnblogs.com/zhouwanqiu/p/9385509.html
Copyright © 2011-2022 走看看