目錄
回复讨论(解决方案)
首頁 後端開發 php教程 两个数组合并问题

两个数组合并问题

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 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

11個最佳PHP URL縮短腳本(免費和高級) 11個最佳PHP URL縮短腳本(免費和高級) Mar 03, 2025 am 10:49 AM

11個最佳PHP URL縮短腳本(免費和高級)

Instagram API簡介 Instagram API簡介 Mar 02, 2025 am 09:32 AM

Instagram API簡介

在Laravel中使用Flash會話數據 在Laravel中使用Flash會話數據 Mar 12, 2025 pm 05:08 PM

在Laravel中使用Flash會話數據

構建具有Laravel後端的React應用程序:第2部分,React 構建具有Laravel後端的React應用程序:第2部分,React Mar 04, 2025 am 09:33 AM

構建具有Laravel後端的React應用程序:第2部分,React

簡化的HTTP響應在Laravel測試中模擬了 簡化的HTTP響應在Laravel測試中模擬了 Mar 12, 2025 pm 05:09 PM

簡化的HTTP響應在Laravel測試中模擬了

php中的捲曲:如何在REST API中使用PHP捲曲擴展 php中的捲曲:如何在REST API中使用PHP捲曲擴展 Mar 14, 2025 am 11:42 AM

php中的捲曲:如何在REST API中使用PHP捲曲擴展

在Codecanyon上的12個最佳PHP聊天腳本 在Codecanyon上的12個最佳PHP聊天腳本 Mar 13, 2025 pm 12:08 PM

在Codecanyon上的12個最佳PHP聊天腳本

宣布 2025 年 PHP 形勢調查 宣布 2025 年 PHP 形勢調查 Mar 03, 2025 pm 04:20 PM

宣布 2025 年 PHP 形勢調查

See all articles