两个数组合并问题

bluezsh 2014-10-16 04:22:06
数组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] => 王五

)

)

)

)


数组2

$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] => 赵云

)

)

)
[2] => Array
(
[time] => 22:00
[detail2] => Array
(
[0] => Array
(
[caseid] => 45
[casename] => 貂蝉

)

)

)

)

合并后,最终数组应该是这样显示:
[code=php]
$result=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] => 貂蝉

)

)

)

)

[/code]
...全文
124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluezsh 2014-10-26
  • 打赏
  • 举报
回复
非常感谢,自己搞定了。
傲雪星枫 2014-10-16
  • 打赏
  • 举报
回复
数组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] => 貂蝉
                        )

                )

        )

)
xuzuning 2014-10-16
  • 打赏
  • 举报
回复
$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 提供了丰富的函数 你应该自己动动手

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧