ホームページ バックエンド開発 PHPチュートリアル 2 つの配列の結合に関する問題

2 つの配列の結合に関する問題

Jun 13, 2016 pm 12:08 PM
array gt nbsp

2 つの配列のマージの問題

この投稿は、bluezsh によって最終編集されました: 2014-10-16 16:25:27 配列 1:
<br />$arr1=Array<br />		(<br />			[0] =&gt; Array<br />				(<br />					[time] =&gt; 8:00<br />					[detail] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 31<br />									[casename] =&gt; 张三<br />									 <br />								)<br />							[1] =&gt; Array<br />								(<br />									[caseid] =&gt; 32<br />									[casename] =&gt;李四<br />									 <br />								)<br />							[2] =&gt; Array<br />								(<br />									[caseid] =&gt; 33<br />									[casename] =&gt; 王五<br />									 <br />								)<br />		 <br />						)<br />		 <br />				)<br />		 <br />			[1] =&gt; Array<br />				(<br />					[time] =&gt; 12:00<br />					[detail] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 32<br />									[casename] =&gt; 李四 <br />								)<br />							[1] =&gt; Array<br />								(<br />									[caseid] =&gt; 33<br />									[casename] =&gt; 王五 <br />								)<br />		 <br />						)<br />		 <br />				)<br />		 <br />			[2] =&gt; Array<br />				(<br />					[time] =&gt; 18:00<br />					[detail] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 31<br />									[casename] =&gt; 张三<br />									 <br />								)<br />							[1] =&gt; Array<br />								(<br />									[caseid] =&gt; 32<br />									[casename] =&gt; 李四<br />									 <br />								)<br />							[2] =&gt; Array<br />								(<br />									[caseid] =&gt; 33<br />									[casename] =&gt; 王五<br />									 <br />								)<br />		 <br />						)<br />		 <br />				)<br />		 <br />		)<br /><br />
ログイン後にコピー

配列 2
<br />$arr2=Array<br />		(<br />			[0] =&gt; Array<br />				(<br />					[time] =&gt; 8:00<br />					[detail2] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 41<br />									[casename] =&gt; 刘备<br />									 <br />								)<br />							<br />						)<br />		 <br />				)<br />		 <br />			[1] =&gt; Array<br />				(<br />					[time] =&gt; 16:00<br />					[detail2] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 42<br />									[casename] =&gt; 张飞 <br />								)<br />							[1] =&gt; Array<br />								(<br />									[caseid] =&gt; 43<br />									[casename] =&gt; 赵云 <br />								)<br />		 <br />						)<br />		 <br />				)<br />		 <br />			[2] =&gt; Array<br />				(<br />					[time] =&gt; 18:00<br />					[detail2] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 43<br />									[casename] =&gt; 赵云<br />									 <br />								)<br />		 <br />						)<br />		 <br />				)<br />			[2] =&gt; Array<br />				(<br />					[time] =&gt; 22:00<br />					[detail2] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 45<br />									[casename] =&gt; 貂蝉<br />									 <br />								)<br />		 <br />						)<br />		 <br />				)<br />		 <br />		)<br /><br />合并后,最终数组应该是这样显示:<br />[code=php]<br />$result=Array<br />		(<br />			[0] =&gt; Array<br />				(<br />					[time] =&gt; 8:00<br />					[detail] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 31<br />									[casename] =&gt; 张三<br />									 <br />								)<br />							[1] =&gt; Array<br />								(<br />									[caseid] =&gt; 32<br />									[casename] =&gt;李四<br />									 <br />								)<br />							[2] =&gt; Array<br />								(<br />									[caseid] =&gt; 33<br />									[casename] =&gt; 王五<br />									 <br />								)<br />		 <br />						)<br />						[detail2] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 41<br />									[casename] =&gt; 刘备<br />									 <br />								)<br />							<br />						)<br />		 <br />				)<br />		 <br />			[1] =&gt; Array<br />				(<br />					[time] =&gt; 12:00<br />					[detail] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 32<br />									[casename] =&gt; 李四 <br />								)<br />							[1] =&gt; Array<br />								(<br />									[caseid] =&gt; 33<br />									[casename] =&gt; 王五 <br />								)<br />		 <br />						)<br />					[detail2] =&gt; Array<br />						(<br /><br />						)<br />		 <br />				)<br />			[2] =&gt; Array<br />				(<br />					[time] =&gt; 16:00<br />					[detail] =&gt; Array<br />						(<br /><br />						)<br />					[detail2] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 42<br />									[casename] =&gt; 张飞 <br />								)<br />							[1] =&gt; Array<br />								(<br />									[caseid] =&gt; 43<br />									[casename] =&gt; 赵云 <br />								)<br />		 <br />						)<br />		 <br />				)<br /><br />		 <br />			[3] =&gt; Array<br />				(<br />					[time] =&gt; 18:00<br />					[detail] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 31<br />									[casename] =&gt; 张三<br />									 <br />								)<br />							[1] =&gt; Array<br />								(<br />									[caseid] =&gt; 32<br />									[casename] =&gt; 李四<br />									 <br />								)<br />							[2] =&gt; Array<br />								(<br />									[caseid] =&gt; 33<br />									[casename] =&gt; 王五<br />									 <br />								)<br />		 <br />						)<br />					[detail2] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 43<br />									[casename] =&gt; 赵云<br />									 <br />								)<br />		 <br />						)<br />		 <br />				)<br />			[4] =&gt; Array<br />				(<br />					[time] =&gt; 22:00<br />					[detail] =&gt; Array<br />						(<br /><br />						)<br />					[detail2] =&gt; Array<br />						(<br />							[0] =&gt; Array<br />								(<br />									[caseid] =&gt; 45<br />									[casename] =&gt; 貂蝉<br />									 <br />								)<br />		 <br />						)<br />		 <br />				)<br />		 <br />		)<br />
ログイン後にコピー

[/code]
-----ソリューションのアイデア----------------------
$arr1 = array (<br />  0 =&gt; <br />  array (<br />    'time' =&gt; '8:00',<br />    'detail' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '31',<br />        'casename' =&gt; '张三',<br />      ),<br />      1 =&gt; <br />      array (<br />        'caseid' =&gt; '32',<br />        'casename' =&gt; '李四',<br />      ),<br />      2 =&gt; <br />      array (<br />        'caseid' =&gt; '33',<br />        'casename' =&gt; '王五',<br />      ),<br />    ),<br />  ),<br />  1 =&gt; <br />  array (<br />    'time' =&gt; '12:00',<br />    'detail' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '32',<br />        'casename' =&gt; '李四',<br />      ),<br />      1 =&gt; <br />      array (<br />        'caseid' =&gt; '33',<br />        'casename' =&gt; '王五',<br />      ),<br />    ),<br />  ),<br />  2 =&gt; <br />  array (<br />    'time' =&gt; '18:00',<br />    'detail' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '31',<br />        'casename' =&gt; '张三',<br />      ),<br />      1 =&gt; <br />      array (<br />        'caseid' =&gt; '32',<br />        'casename' =&gt; '李四',<br />      ),<br />      2 =&gt; <br />      array (<br />        'caseid' =&gt; '33',<br />        'casename' =&gt; '王五',<br />      ),<br />    ),<br />  ),<br />);<br />$arr2 = array (<br />  0 =&gt; <br />  array (<br />    'time' =&gt; '8:00',<br />    'detail2' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '41',<br />        'casename' =&gt; '刘备',<br />      ),<br />    ),<br />  ),<br />  1 =&gt; <br />  array (<br />    'time' =&gt; '16:00',<br />    'detail2' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '42',<br />        'casename' =&gt; '张飞',<br />      ),<br />      1 =&gt; <br />      array (<br />        'caseid' =&gt; '43',<br />        'casename' =&gt; '赵云',<br />      ),<br />    ),<br />  ),<br />  2 =&gt; <br />  array (<br />    'time' =&gt; '22:00',<br />    'detail2' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '45',<br />        'casename' =&gt; '貂蝉',<br />      ),<br />    ),<br />  ),<br />);<br />foreach($arr1 as $item) $a[$item['time']] = $item;<br />foreach($arr2 as $item) $b[$item['time']] = $item;<br />print_r(array_values(array_merge_recursive($a, $b)));<br />
ログイン後にコピー
Array<br />(<br />    [0] =&gt; Array<br />        (<br />            [time] =&gt; Array<br />                (<br />                    [0] =&gt; 8:00<br />                    [1] =&gt; 8:00<br />                )<br /><br />            [detail] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 31<br />                            [casename] =&gt; 张三<br />                        )<br /><br />                    [1] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 32<br />                            [casename] =&gt; 李四<br />                        )<br /><br />                    [2] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 33<br />                            [casename] =&gt; 王五<br />                        )<br /><br />                )<br /><br />            [detail2] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 41<br />                            [casename] =&gt; 刘备<br />                        )<br /><br />                )<br /><br />        )<br /><br />    [1] =&gt; Array<br />        (<br />            [time] =&gt; 12:00<br />            [detail] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 32<br />                            [casename] =&gt; 李四<br />                        )<br /><br />                    [1] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 33<br />                            [casename] =&gt; 王五<br />                        )<br /><br />                )<br /><br />        )<br /><br />    [2] =&gt; Array<br />        (<br />            [time] =&gt; 18:00<br />            [detail] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 31<br />                            [casename] =&gt; 张三<br />                        )<br /><br />                    [1] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 32<br />                            [casename] =&gt; 李四<br />                        )<br /><br />                    [2] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 33<br />                            [casename] =&gt; 王五<br />                        )<br /><br />                )<br /><br />        )<br /><br />    [3] =&gt; Array<br />        (<br />            [time] =&gt; 16:00<br />            [detail2] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 42<br />                            [casename] =&gt; 张飞<br />                        )<br /><br />                    [1] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 43<br />                            [casename] =&gt; 赵云<br />                        )<br /><br />                )<br /><br />        )<br /><br />    [4] =&gt; Array<br />        (<br />            [time] =&gt; 22:00<br />            [detail2] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 45<br />                            [casename] =&gt; 貂蝉<br />                        )<br /><br />                )<br /><br />        )<br /><br />)<br /><br />
ログイン後にコピー

php には豊富な機能があります
自分で行うべきです
-----解決策のアイデア----------- - ---------
配列 2 に問題があります。18:00 と 22:00 の添え字は両方とも 2 です。22:00 を 3 に変更してください
<br />&lt;?php<br />echo '&lt;meta http-equiv="content-type" content="text/html;charset=utf-8"&gt;';<br />$arr1 = array (<br />  0 =&gt; <br />  array (<br />    'time' =&gt; '8:00',<br />    'detail' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '31',<br />        'casename' =&gt; '张三',<br />      ),<br />      1 =&gt; <br />      array (<br />        'caseid' =&gt; '32',<br />        'casename' =&gt; '李四',<br />      ),<br />      2 =&gt; <br />      array (<br />        'caseid' =&gt; '33',<br />        'casename' =&gt; '王五',<br />      ),<br />    ),<br />  ),<br />  1 =&gt; <br />  array (<br />    'time' =&gt; '12:00',<br />    'detail' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '32',<br />        'casename' =&gt; '李四',<br />      ),<br />      1 =&gt; <br />      array (<br />        'caseid' =&gt; '33',<br />        'casename' =&gt; '王五',<br />      ),<br />    ),<br />  ),<br />  2 =&gt; <br />  array (<br />    'time' =&gt; '18:00',<br />    'detail' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '31',<br />        'casename' =&gt; '张三',<br />      ),<br />      1 =&gt; <br />      array (<br />        'caseid' =&gt; '32',<br />        'casename' =&gt; '李四',<br />      ),<br />      2 =&gt; <br />      array (<br />        'caseid' =&gt; '33',<br />        'casename' =&gt; '王五',<br />      ),<br />    ),<br />  ),<br />);<br />$arr2 = array (<br />  0 =&gt; <br />  array (<br />    'time' =&gt; '8:00',<br />    'detail2' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '41',<br />        'casename' =&gt; '刘备',<br />      ),<br />    ),<br />  ),<br />  1 =&gt; <br />  array (<br />    'time' =&gt; '16:00',<br />    'detail2' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '42',<br />        'casename' =&gt; '张飞',<br />      ),<br />      1 =&gt; <br />      array (<br />        'caseid' =&gt; '43',<br />        'casename' =&gt; '赵云',<br />      ),<br />    ),<br />  ),<br />    2 =&gt; <br />    array (<br />    'time' =&gt; '18:00',<br />    'detail2' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '43',<br />        'casename' =&gt; '赵云',<br />      ),<br />    ),<br />    ),<br />  3 =&gt; <br />  array (<br />    'time' =&gt; '22:00',<br />    'detail2' =&gt; <br />    array (<br />      0 =&gt; <br />      array (<br />        'caseid' =&gt; '45',<br />        'casename' =&gt; '貂蝉',<br />      ),<br />    ),<br />  ),<br />);<br /><br />$result = array();<br /><br />foreach($arr1 as $row){<br />    $key = $row['time'];<br />    $row['detail2'] = array();<br />    $result[$key] = $row;<br />}<br /><br />foreach($arr2 as $row){<br />    $key = $row['time'];<br />    if(!isset($result[$key])){<br />        $result[$key] = array(<br />            'time' =&gt; $row['time'],<br />            'detail' =&gt; array(),<br />            'detail2' =&gt; $row['detail2']<br />        );<br />    }else{<br />       $result[$key]['detail2'] = $row['detail2'];<br />    }<br />}<br /><br />ksort($result, SORT_NUMERIC);<br /><br />$result = array_values($result);<br /><br />echo '&lt;pre&gt;';<br />print_r($result);<br />echo '&lt;/pre&gt;';<br /><br />?&gt;<br />
ログイン後にコピー


<br />Array<br />(<br />    [0] =&gt; Array<br />        (<br />            [time] =&gt; 8:00<br />            [detail] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 31<br />                            [casename] =&gt; 张三<br />                        )<br /><br />                    [1] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 32<br />                            [casename] =&gt; 李四<br />                        )<br /><br />                    [2] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 33<br />                            [casename] =&gt; 王五<br />                        )<br /><br />                )<br /><br />            [detail2] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 41<br />                            [casename] =&gt; 刘备<br />                        )<br /><br />                )<br /><br />        )<br /><br />    [1] =&gt; Array<br />        (<br />            [time] =&gt; 12:00<br />            [detail] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 32<br />                            [casename] =&gt; 李四<br />                        )<br /><br />                    [1] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 33<br />                            [casename] =&gt; 王五<br />                        )<br /><br />                )<br /><br />            [detail2] =&gt; Array<br />                (<br />                )<br /><br />        )<br /><br />    [2] =&gt; Array<br />        (<br />            [time] =&gt; 16:00<br />            [detail] =&gt; Array<br />                (<br />                )<br /><br />            [detail2] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 42<br />                            [casename] =&gt; 张飞<br />                        )<br /><br />                    [1] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 43<br />                            [casename] =&gt; 赵云<br />                        )<br /><br />                )<br /><br />        )<br /><br />    [3] =&gt; Array<br />        (<br />            [time] =&gt; 18:00<br />            [detail] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 31<br />                            [casename] =&gt; 张三<br />                        )<br /><br />                    [1] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 32<br />                            [casename] =&gt; 李四<br />                        )<br /><br />                    [2] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 33<br />                            [casename] =&gt; 王五<br />                        )<br /><br />                )<br /><br />            [detail2] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 43<br />                            [casename] =&gt; 赵云<br />                        )<br /><br />                )<br /><br />        )<br /><br />    [4] =&gt; Array<br />        (<br />            [time] =&gt; 22:00<br />            [detail] =&gt; Array<br />                (<br />                )<br /><br />            [detail2] =&gt; Array<br />                (<br />                    [0] =&gt; Array<br />                        (<br />                            [caseid] =&gt; 45<br />                            [casename] =&gt; 貂蝉<br />                        )<br /><br />                )<br /><br />        )<br /><br />)<br />
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

解決策: 組織では PIN を変更する必要があります。 解決策: 組織では PIN を変更する必要があります。 Oct 04, 2023 pm 05:45 PM

解決策: 組織では PIN を変更する必要があります。

Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する Sep 22, 2023 am 11:37 AM

Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する

Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Sep 14, 2023 pm 03:33 PM

Windows 11でタイトルバーの色を変更するにはどうすればよいですか?

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Sep 15, 2023 pm 03:57 PM

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法

Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Jul 16, 2023 pm 03:29 PM

Windows 11/10修復におけるOOBELANGUAGEエラーの問題

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

Huawei GT3 ProとGT4の違いは何ですか?

Windows 11 でのディスプレイ スケーリング ガイド Windows 11 でのディスプレイ スケーリング ガイド Sep 19, 2023 pm 06:45 PM

Windows 11 でのディスプレイ スケーリング ガイド

Windows 11で明るさを調整する10の方法 Windows 11で明るさを調整する10の方法 Dec 18, 2023 pm 02:21 PM

Windows 11で明るさを調整する10の方法

See all articles