目錄
两个数组合并问题
Jun 23, 2016 pm 01:46 PM 数组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]
回复讨论(解决方案)
$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 class="brush:php;toolbar:false">';print_r($result);echo '
登入後複製
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] => 貂蝉 ) ) ))
登入後複製
非常感谢,自己搞定了。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)