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
                                    (
                                    )
    
                            )
    
                    )
    
            )
    
    )
    
  • 相关阅读:
    TortoiseSVN是windows平台下Subversion的免费开源客户端。
    Lotus Sametime 服务器的安装和配置
    群件
    Lotus Sametime
    软件项目经理
    PMP考试
    IT项目经理
    什么是模式呢?
    上下文(context):相关的内容
    设计模式-四要素
  • 原文地址:https://www.cnblogs.com/fan-bk/p/8555800.html
Copyright © 2011-2022 走看看