本帖最后由 bluezsh 于 2014-10-16 16:25:27 编辑

解决方案 »

  1.   

    $arr1 = array (
      0 => 
      array (
        'time' => '8:00',
        'detail' => 
        array (
          0 => 
          array (
            'caseid' => '31',
            'casename' => '张三',
          ),
          1 => 
          array (
            'caseid' => '32',
            'casename' => '李四',
          ),
          2 => 
          array (
            'caseid' => '33',
            'casename' => '王五',
          ),
        ),
      ),
      1 => 
      array (
        'time' => '12:00',
        'detail' => 
        array (
          0 => 
          array (
            'caseid' => '32',
            'casename' => '李四',
          ),
          1 => 
          array (
            'caseid' => '33',
            'casename' => '王五',
          ),
        ),
      ),
      2 => 
      array (
        'time' => '18:00',
        'detail' => 
        array (
          0 => 
          array (
            'caseid' => '31',
            'casename' => '张三',
          ),
          1 => 
          array (
            'caseid' => '32',
            'casename' => '李四',
          ),
          2 => 
          array (
            'caseid' => '33',
            'casename' => '王五',
          ),
        ),
      ),
    );
    $arr2 = array (
      0 => 
      array (
        'time' => '8:00',
        'detail2' => 
        array (
          0 => 
          array (
            'caseid' => '41',
            'casename' => '刘备',
          ),
        ),
      ),
      1 => 
      array (
        'time' => '16:00',
        'detail2' => 
        array (
          0 => 
          array (
            'caseid' => '42',
            'casename' => '张飞',
          ),
          1 => 
          array (
            'caseid' => '43',
            'casename' => '赵云',
          ),
        ),
      ),
      2 => 
      array (
        'time' => '22:00',
        'detail2' => 
        array (
          0 => 
          array (
            'caseid' => '45',
            'casename' => '貂蝉',
          ),
        ),
      ),
    );
    foreach($arr1 as $item) $a[$item['time']] = $item;
    foreach($arr2 as $item) $b[$item['time']] = $item;
    print_r(array_values(array_merge_recursive($a, $b)));
    Array
    (
        [0] => Array
            (
                [time] => Array
                    (
                        [0] => 8:00
                        [1] => 8:00
                    )            [detail] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 31
                                [casename] => 张三
                            )                    [1] => Array
                            (
                                [caseid] => 32
                                [casename] => 李四
                            )                    [2] => Array
                            (
                                [caseid] => 33
                                [casename] => 王五
                            )                )            [detail2] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 41
                                [casename] => 刘备
                            )                )        )    [1] => Array
            (
                [time] => 12:00
                [detail] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 32
                                [casename] => 李四
                            )                    [1] => Array
                            (
                                [caseid] => 33
                                [casename] => 王五
                            )                )        )    [2] => Array
            (
                [time] => 18:00
                [detail] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 31
                                [casename] => 张三
                            )                    [1] => Array
                            (
                                [caseid] => 32
                                [casename] => 李四
                            )                    [2] => Array
                            (
                                [caseid] => 33
                                [casename] => 王五
                            )                )        )    [3] => Array
            (
                [time] => 16:00
                [detail2] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 42
                                [casename] => 张飞
                            )                    [1] => Array
                            (
                                [caseid] => 43
                                [casename] => 赵云
                            )                )        )    [4] => Array
            (
                [time] => 22:00
                [detail2] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 45
                                [casename] => 貂蝉
                            )                )        ))
    php 提供了丰富的函数
    你应该自己动动手
      

  2.   

    数组2有问题,18:00,与 22:00的下标都是2,把22:00改为3<?php
    echo '<meta http-equiv="content-type" content="text/html;charset=utf-8">';
    $arr1 = array (
      0 => 
      array (
        'time' => '8:00',
        'detail' => 
        array (
          0 => 
          array (
            'caseid' => '31',
            'casename' => '张三',
          ),
          1 => 
          array (
            'caseid' => '32',
            'casename' => '李四',
          ),
          2 => 
          array (
            'caseid' => '33',
            'casename' => '王五',
          ),
        ),
      ),
      1 => 
      array (
        'time' => '12:00',
        'detail' => 
        array (
          0 => 
          array (
            'caseid' => '32',
            'casename' => '李四',
          ),
          1 => 
          array (
            'caseid' => '33',
            'casename' => '王五',
          ),
        ),
      ),
      2 => 
      array (
        'time' => '18:00',
        'detail' => 
        array (
          0 => 
          array (
            'caseid' => '31',
            'casename' => '张三',
          ),
          1 => 
          array (
            'caseid' => '32',
            'casename' => '李四',
          ),
          2 => 
          array (
            'caseid' => '33',
            'casename' => '王五',
          ),
        ),
      ),
    );
    $arr2 = array (
      0 => 
      array (
        'time' => '8:00',
        'detail2' => 
        array (
          0 => 
          array (
            'caseid' => '41',
            'casename' => '刘备',
          ),
        ),
      ),
      1 => 
      array (
        'time' => '16:00',
        'detail2' => 
        array (
          0 => 
          array (
            'caseid' => '42',
            'casename' => '张飞',
          ),
          1 => 
          array (
            'caseid' => '43',
            'casename' => '赵云',
          ),
        ),
      ),
        2 => 
        array (
        'time' => '18:00',
        'detail2' => 
        array (
          0 => 
          array (
            'caseid' => '43',
            'casename' => '赵云',
          ),
        ),
        ),
      3 => 
      array (
        'time' => '22:00',
        'detail2' => 
        array (
          0 => 
          array (
            'caseid' => '45',
            'casename' => '貂蝉',
          ),
        ),
      ),
    );$result = array();foreach($arr1 as $row){
        $key = $row['time'];
        $row['detail2'] = array();
        $result[$key] = $row;
    }foreach($arr2 as $row){
        $key = $row['time'];
        if(!isset($result[$key])){
            $result[$key] = array(
                'time' => $row['time'],
                'detail' => array(),
                'detail2' => $row['detail2']
            );
        }else{
           $result[$key]['detail2'] = $row['detail2'];
        }
    }ksort($result, SORT_NUMERIC);$result = array_values($result);echo '<pre>';
    print_r($result);
    echo '</pre>';?>Array
    (
        [0] => Array
            (
                [time] => 8:00
                [detail] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 31
                                [casename] => 张三
                            )                    [1] => Array
                            (
                                [caseid] => 32
                                [casename] => 李四
                            )                    [2] => Array
                            (
                                [caseid] => 33
                                [casename] => 王五
                            )                )            [detail2] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 41
                                [casename] => 刘备
                            )                )        )    [1] => Array
            (
                [time] => 12:00
                [detail] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 32
                                [casename] => 李四
                            )                    [1] => Array
                            (
                                [caseid] => 33
                                [casename] => 王五
                            )                )            [detail2] => Array
                    (
                    )        )    [2] => Array
            (
                [time] => 16:00
                [detail] => Array
                    (
                    )            [detail2] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 42
                                [casename] => 张飞
                            )                    [1] => Array
                            (
                                [caseid] => 43
                                [casename] => 赵云
                            )                )        )    [3] => Array
            (
                [time] => 18:00
                [detail] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 31
                                [casename] => 张三
                            )                    [1] => Array
                            (
                                [caseid] => 32
                                [casename] => 李四
                            )                    [2] => Array
                            (
                                [caseid] => 33
                                [casename] => 王五
                            )                )            [detail2] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 43
                                [casename] => 赵云
                            )                )        )    [4] => Array
            (
                [time] => 22:00
                [detail] => Array
                    (
                    )            [detail2] => Array
                    (
                        [0] => Array
                            (
                                [caseid] => 45
                                [casename] => 貂蝉
                            )                )        ))