PHP数组的合并处理
有两个数组:
=========== A: array ( [0] => Array ( [Vtime] => 2014-01-18 00:22:43 [qr] => 0a5500f5d5e5847209d83a7fe637a34f ) [1] => Array ( [Vtime] => 2014-01-17 00:00:00 [qr] => 218e412b1d73f771e8b01b9d1f678f5b ) ) =========== B: array ( [0] => Array ( [Date] => 2014-01-18 00:22:43 [Md5] => 0a5500f5d5e5847209d83a7fe637a34f ) [1] => Array ( [Date] => 2014-01-18 00:22:43 [Md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [2] => Array ( [Date] => 2014-01-17 00:00:00 [Md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [3] => Array ( [Date] => 2014-01-17 00:00:00 [Md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [4] => Array ( [Date] => 2014-01-17 00:00:00 [Md5] => 218e412b1d73f771e8b01b9d1f678f5b ) )
比较A数组Vtime和B数组中的Date是否相同,如果相同将数据合并(vtime, qr, Date, Md5)放到C数组,
如果不相同,则单独把A数组放到C数组。
(A数组要和B数组的每一个都对比,B数组只有和A数组对应的才会保留到C数组)
求高手帮我想个办法。
回复内容:
有两个数组:
=========== A: array ( [0] => Array ( [Vtime] => 2014-01-18 00:22:43 [qr] => 0a5500f5d5e5847209d83a7fe637a34f ) [1] => Array ( [Vtime] => 2014-01-17 00:00:00 [qr] => 218e412b1d73f771e8b01b9d1f678f5b ) ) =========== B: array ( [0] => Array ( [Date] => 2014-01-18 00:22:43 [Md5] => 0a5500f5d5e5847209d83a7fe637a34f ) [1] => Array ( [Date] => 2014-01-18 00:22:43 [Md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [2] => Array ( [Date] => 2014-01-17 00:00:00 [Md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [3] => Array ( [Date] => 2014-01-17 00:00:00 [Md5] => 218e412b1d73f771e8b01b9d1f678f5b ) [4] => Array ( [Date] => 2014-01-17 00:00:00 [Md5] => 218e412b1d73f771e8b01b9d1f678f5b ) )
比较A数组Vtime和B数组中的Date是否相同,如果相同将数据合并(vtime, qr, Date, Md5)放到C数组,
如果不相同,则单独把A数组放到C数组。
(A数组要和B数组的每一个都对比,B数组只有和A数组对应的才会保留到C数组)
求高手帮我想个办法。
<?php $A = array( array( 'Vtime' => 1, 'qr' => 2, ), array( 'Vtime' => 3, 'qr' => 4, ), ); $B = array( array( 'date' => 1, 'md5' => 2, ), array( 'date' => 5, 'md5' => 6, ), ); $D = array(); foreach($B as $b) { // 没有考虑date重复的问题 $D[$b['date']] = $b; } $C = $A; foreach($C as &$c) { if(isset($D[$c['Vtime']])) { $c = array_merge($c, $D[$c['Vtime']]); } } unset($c); var_dump($C);
<code>$A = array(); //初始数据$A $B = array(); //初始数据$B $D = array(); foreach($B as $b) { $D['date'][] = $b['Date']; $D['md5'][] = $b['Md5']; } $D = array_combine($D['date'], $D['md5']); foreach($A as &$a) array_key_exists($a['Vtime'], $D) && $a['md5'] = $D[$a['Vtime']]; $C = $A; </code>
$c = []; $i = 0; //遍历$a array_walk( $a, function ($v, $k) use ($b, &$c, &$i) { //遍历$b foreach ($b as $bb) { //不同的部分 $c[$i] = $v; //如果相同 $v['Vtime'] == $bb['Date'] && list( $c[$i]['Date'], $c[$i]['Md5'] ) = [ $bb['Date'], $bb['Md5'] ]; $i++; } } );

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー
