两个数组合并问题 本帖最后由 bluezsh 于 2014-10-16 16:25:27 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $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有问题,18:00,与 22:00的下标都是2,把22:00改为3<?phpecho '<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] => 貂蝉 ) ) )) 如何查询mysql的执行记录? PHP导入到数据库字段中信息不完整 变量可以在双引号的字符串中替换,可是为何表单域控件就不行呢? 初学者,一个简单的页面提交问题 新手请教checkbox问题,在线等! 关于连接缓存? 我想使用户按一下按纽,怎么样才能显示提示的信息文本框?谢谢! 网站上传后出现的错误 字符串问题,请帮帮忙啊。 请问下配置里写上 require not ip 以后, apache 启动就失败 请帮我看下这段代码 为什么我mac突然没有权限了
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 提供了丰富的函数
你应该自己动动手
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] => 貂蝉
) ) ))