zoukankan      html  css  js  c++  java
  • php,合并数组,合并一维数组,合并二维数组,合并多维数组

    合并数组
    例子1:
    
    <?php
    $msg = [
      "code" => "0",
      "msg" => "",
      "count" => "",
    ];
    $data = [
      "name" => "lady",
      "age" => "0",
      "count" => "0",
    ];
    $msg['data'] = $data;
    print_r($msg);
     输出:
    
    Array
    (
      [code] => 0
      [msg] => 
      [count] => 
      [data] => Array
      (
        [name] => lady
        [age] => 0
        [count] => 0
      )
    )
    例子二:
    
    <?php
    $a1 = [
        'red', 'green',
    ];
    $a2 = [
        'blue', 'yellow',
    ];
    print_r(array_merge($a1, $a2));
     输出:
    
    Array
    (
      [0] => red
      [1] => green
      [2] => blue
      [3] => yellow
    )
    例子三:
    
    <?php
    $a1 = [
        'apple' => 'red',
        'banner' => 'yellow',
    ];
    $a2 = [
        'pear' => 'yellwo',
        'apple' => 'green',
    ];
    $result = array_merge_recursive($a1, $a2);
    print_r($result);
    输出:
    
    Array
    (
        [apple] => Array
            (
                [0] => red
                [1] => green
            )
     
        [banner] => yellow
        [pear] => yellwo
    )
    例子四:
    
    <?php
    $a = array('color' => 'red');
    $b = array('color' => 'blue', 'type' => 'fruit');
    $arr = $a + $b;
    print_r($arr);
    输出:
    
    Array
    (
        [color] => red
        [type] => fruit
    )
    例子五:
    
    <?php
    $a = [
        [
            'id' => '1',
            'name' => '张三',
            'age' => '18',
        ],
        [
            'id' => '1',
            'name' => '小米',
            'age' => '15',
        ],
        [
            'id' => '3',
            'name' => '张三',
            'age' => '20',
        ],
        [
            'id' => '3',
            'name' => '张六',
            'age' => '29',
        ],
        [
            'id' => '3',
            'name' => '张三疯',
            'age' => '20',
        ],
    ];
    $b = [];
    foreach ($a as $k => $v) {
        if (!isset($b[$v['id']])) {
            $b[$v['id']] = $v;
        } else {
            $b[$v['id']]['name'] .= ',' . $v['name'];
        }
    }
    // echo '<pre>';
    print_r(array_values($b));
     输出:
    
    Array
    (
        [0] => Array
            (
                [id] => 1
                [name] => 张三,小米
                [age] => 18
            )
     
        [1] => Array
            (
                [id] => 3
                [name] => 张三,张六,张三疯
                [age] => 20
            )
     
    )
     例子六:
    
    <?php
    $arr = array(
        array(
            'id' => 1,
            'pid' => 0,
            'name' => '新闻分类',
        ),
        array(
            'id' => 2,
            'pid' => 0,
            'name' => '最新公告',
        ),
        array(
            'id' => 3,
            'pid' => 1,
            'name' => '国内新闻',
        ),
        array(
            'id' => 4,
            'pid' => 1,
            'name' => '国际新闻',
        ),
        array(
            'id' => 5,
            'pid' => 0,
            'name' => '图片分类',
        ),
        array(
            'id' => 6,
            'pid' => 5,
            'name' => '新闻图片',
        ),
        array(
            'id' => 7,
            'pid' => 5,
            'name' => '其它图片',
        ),
    );
     
    //整理函数
    /**
     * 生成无限级树算法
     * @author Baiyu 2014-04-01
     * @param array $arr        输入数组
     * @param number $pid        根级的pid
     * @param string $column_name    列名,id|pid父id的名字|children子数组的键名
     * @return array $ret
     */
    function make_tree($arr, $pid = 0, $column_name = 'id|pid|children') {
        list($idname, $pidname, $cldname) = explode('|', $column_name);
        $ret = array();
        foreach ($arr as $k => $v) {
            if ($v[$pidname] == $pid) {
                $tmp = $arr[$k];
                unset($arr[$k]);
                $tmp[$cldname] = make_tree($arr, $v[$idname], $column_name);
                $ret[] = $tmp;
            }
        }
        return $ret;
    }
    $output_array = make_tree($arr);
    print_r($output_array);
    输出:
    
    Array
    (
        [0] => Array
            (
                [id] => 1
                [pid] => 0
                [name] => 新闻分类
                [children] => Array
                    (
                        [0] => Array
                            (
                                [id] => 3
                                [pid] => 1
                                [name] => 国内新闻
                                [children] => Array
                                    (
                                    )
     
                            )
     
                        [1] => Array
                            (
                                [id] => 4
                                [pid] => 1
                                [name] => 国际新闻
                                [children] => Array
                                    (
                                    )
     
                            )
     
                    )
     
            )
     
        [1] => Array
            (
                [id] => 2
                [pid] => 0
                [name] => 最新公告
                [children] => Array
                    (
                    )
     
            )
     
        [2] => Array
            (
                [id] => 5
                [pid] => 0
                [name] => 图片分类
                [children] => Array
                    (
                        [0] => Array
                            (
                                [id] => 6
                                [pid] => 5
                                [name] => 新闻图片
                                [children] => Array
                                    (
                                    )
     
                            )
     
                        [1] => Array
                            (
                                [id] => 7
                                [pid] => 5
                                [name] => 其它图片
                                [children] => Array
                                    (
                                    )
     
                            )
     
                    )
     
            )
     
    )
     
  • 相关阅读:
    如何快速正确的安装 Ruby, Rails 运行环境
    五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
    CocoaPods安装和使用教程
    ARC下需要注意的内存管理
    iOS 遍历某一对象的属性和方法
    使用命令行工具运行Xcode 7 UI Tests
    手势知多少
    Customizing UIWebView requests with NSURLProtocol
    iOS: JS和Native交互的两种方法
    NSURLProtocol
  • 原文地址:https://www.cnblogs.com/kevin-yang123/p/14084611.html
Copyright © 2011-2022 走看看