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 Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

CakePHP 是 PHP 的開源框架。它旨在使應用程式的開發、部署和維護變得更加容易。 CakePHP 基於類似 MVC 的架構,功能強大且易於掌握。模型、視圖和控制器 gu

登入 CakePHP 是一項非常簡單的任務。您只需使用一項功能即可。您可以記錄任何後台程序(如 cronjob)的錯誤、異常、使用者活動、使用者採取的操作。在 CakePHP 中記錄資料很容易。提供了 log() 函數

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

CakePHP 是一個開源MVC 框架。它使應用程式的開發、部署和維護變得更加容易。 CakePHP 有許多函式庫可以減少大多數常見任務的過載。
