合并数组
$A = array( '1' => array( 'amount' => '100', 'amount1' =>'50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212' ), '2' => array( 'amount' => '10', 'amount1' =>'5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545' ) ); $B = array( '1' => array( 'user_money' => '100', 'user_money1' =>'50', 'user_money2' => '200' ), '2' => array( 'user_money' => '10', 'user_money1' =>'5', 'user_money2' => '20', 'user_money3' => '45454545' ) ); foreach( $A as $k => $v){ foreach($B as $kk => $vv){ if($k = $kk){ $vvv[] = $v+$vv; } } } var_dump($vvv);
我这样写得出来的这样
array (size=4) 0 => array (size=8) 'amount' => string '100' (length=3) 'amount1' => string '50' (length=2) 'amount2' => string '200' (length=3) 'payment' => string '12121212' (length=8) 'payment1' => string '12121212' (length=8) 'user_money' => string '100' (length=3) 'user_money1' => string '50' (length=2) 'user_money2' => string '200' (length=3) 1 => array (size=9) 'amount' => string '100' (length=3) 'amount1' => string '50' (length=2) 'amount2' => string '200' (length=3) 'payment' => string '12121212' (length=8) 'payment1' => string '12121212' (length=8) 'user_money' => string '10' (length=2) 'user_money1' => string '5' (length=1) 'user_money2' => string '20' (length=2) 'user_money3' => string '45454545' (length=8) 2 => array (size=8) 'amount' => string '10' (length=2) 'amount1' => string '5' (length=1) 'amount2' => string '20' (length=2) 'payment' => string '45454545' (length=8) 'payment1' => string '45454545' (length=8) 'user_money' => string '100' (length=3) 'user_money1' => string '50' (length=2) 'user_money2' => string '200' (length=3) 3 => array (size=9) 'amount' => string '10' (length=2) 'amount1' => string '5' (length=1) 'amount2' => string '20' (length=2) 'payment' => string '45454545' (length=8) 'payment1' => string '45454545' (length=8) 'user_money' => string '10' (length=2) 'user_money1' => string '5' (length=1) 'user_money2' => string '20' (length=2) 'user_money3' => string '45454545' (length=8)
我想要的结果
$C = array( * '1' => array( 'user_money' => '100', 'user_money1' =>'50', 'user_money2' => '200' 'amount' => '100', 'amount1' =>'50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212' ), '2' => array( 'user_money' => '10', 'user_money1' =>'5', 'user_money2' => '20', 'user_money3' => '45454545' 'amount' => '10', 'amount1' =>'5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545' ) * );
回复讨论(解决方案)
补充我的建名都是一样的。然后根据建名将值合并
$A = array( '1' => array( 'amount' => '100', 'amount1' =>'50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212' ), '2' => array( 'amount' => '10', 'amount1' =>'5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545' ) ); $B = array( '1' => array( 'user_money' => '100', 'user_money1' =>'50', 'user_money2' => '200' ), '2' => array( 'user_money' => '10', 'user_money1' =>'5', 'user_money2' => '20', 'user_money3' => '45454545' ) );foreach($A as $k=>$v) $r[] = $v + $B[$k];var_export($r);
array ( 0 => array ( 'amount' => '100', 'amount1' => '50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212', 'user_money' => '100', 'user_money1' => '50', 'user_money2' => '200', ), 1 => array ( 'amount' => '10', 'amount1' => '5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545', 'user_money' => '10', 'user_money1' => '5', 'user_money2' => '20', 'user_money3' => '45454545', ),)
$A = array( '1' => array( 'amount' => '100', 'amount1' =>'50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212' ), '2' => array( 'amount' => '10', 'amount1' =>'5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545' ) ); $B = array( '1' => array( 'user_money' => '100', 'user_money1' =>'50', 'user_money2' => '200' ), '2' => array( 'user_money' => '10', 'user_money1' =>'5', 'user_money2' => '20', 'user_money3' => '45454545' ) );foreach($A as $k=>$v) $r[] = $v + $B[$k];var_export($r);
array ( 0 => array ( 'amount' => '100', 'amount1' => '50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212', 'user_money' => '100', 'user_money1' => '50', 'user_money2' => '200', ), 1 => array ( 'amount' => '10', 'amount1' => '5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545', 'user_money' => '10', 'user_money1' => '5', 'user_money2' => '20', 'user_money3' => '45454545', ),)
版主 我想简单了。。。key不是11对应的。这种情况如何合并啊?
array ( 16128 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16128', ), 16127 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16127', ), 16126 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16126', ), 16125 => array ( 'user_money' => '0.00', 'change_desc' => '订单 2016022647848 赠送的积分', 'user_id' => '16125', ), 16124 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16124', ), 16123 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16123', ), 16122 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16122', ), 16121 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16121', ), 16120 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16120', ), 16119 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16119', ), 16118 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16118', ), 16117 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16117', ), 16116 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16116', ), 16115 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16115', ), 16114 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16114', ), 16113 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16113', ), 16112 => array ( 'user_money' => '0.00', 'change_desc' => '注册送积分', 'user_id' => '16112', ), 16111 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16111', ), 16110 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16110', ), 16109 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16109', ),)
B
array ( 16127 => array ( 'amount' => '1000.00', 'payment' => '储值卡号:16011118067599', 'user_id' => '16127', ), 16110 => array ( 'amount' => '1000.00', 'payment' => '储值卡号:16011128883958', 'user_id' => '16110', ), 16102 => array ( 'amount' => '1000.00', 'payment' => '储值卡号:16011125271413', 'user_id' => '16102', ), 16077 => array ( 'amount' => '500.00', 'payment' => '储值卡号:16011138443550', 'user_id' => '16077', ), 16062 => array ( 'amount' => '5.00', 'payment' => '储值卡号:15122274342772', 'user_id' => '16062', ), 16048 => array ( 'amount' => '500.00', 'payment' => '储值卡号:16011149520320', 'user_id' => '16048', ), 16037 => array ( 'amount' => '1000.00', 'payment' => '储值卡号:16011133169060', 'user_id' => '16037', ), 16029 => array ( 'amount' => '500.00', 'payment' => '储值卡号:16011127482943', 'user_id' => '16029', ), 16006 => array ( 'amount' => '500.00', 'payment' => '储值卡号:16011188176126', 'user_id' => '16006', ),)
有什么区别吗?
被来就是按键关联的
你 foreach($A as $k=>$v) $r[ $k] = $v + $B[$k]; 就可以看到
版主我的需求是这样的:我要将用户的消费信息与充值信息导出到excel中。应用到3个表,users、account_log、user_account表。
users表中只需要一个user_name字段,
account_log中需要change_desc,user_money,frozen_money。
user_account表中需要payment,amount 三个表的关联字段就是user_id。
users表数据user_id user_name1 ss2 dd
account_log表数据 ==》记录所有的充值、消费、退款记录user_id user_money frozen_money change_desc1 10 0 充值1 20 0 充值1 -40 0 消费2 50 0 充值3 50 0 充值
user_account表 ==》 只记录充值记录user_id amount payment1 10 充值10卡号12321 20 充值20卡号53452 50 充值50卡号34533 50 充值50卡号5585
我当初的想法是,将user_account表的数据查出来为A将account_log数据查出为B,然后合并数组,最终想要
数组(0 => array( 'user_id' => '1', 'user_money' => '10' , 'user_money' => '20' , 'user_money' => '-40' , 'payment'=> ‘充值10卡号1232’, ‘payment’ =>'充值20卡号5345' ),1 => array( 'user_id' => '2', 'user_money' => '50' , 'payment'=>'充值50卡号3453'),2=>array( 'user_id' => '3', 'user_money' => '50' , 'payment'=>'充值50卡号5585'))
我最终想要这样的数据,然后foreach数组,将它导出到excel。
但是我发现合并数组我合并不好。。。版主这种导出应该怎么弄?
数组的键是唯一的,你
0 => array(
'user_id' => '1',
' user_money' => '10' ,
' user_money' => '20' ,
'user_money' => '-40' ,
' payment'=> ‘充值10卡号1232’,
‘ payment’ =>'充值20卡号5345'
),
这样的数组,是不可能存在的
你可以改为三级数组啊
0 => array(
'user_id' => '1',
'user_money' =>array( '10', '20' , '-40' ),
'payment'=>array( ‘充值10卡号1232’,'充值20卡号5345' ) //这边对应user_money应该是3个值吧,
),
1 => array(
'user_id' => '2',
'user_money' => '50' ,
'payment'=>'充值50卡号3453'
),
2=>array(
'user_id' => '3',
'user_money' => '50' ,
'payment'=>'充值50卡号5585'
)
然后依据原理合并就可以
$a=array(
0 => array(
'user_id' => '1',
'user_money' =>array( '10', '20', '-40' ),
'payment'=>array('充值10卡号1232','充值20卡号5345') //这边对应user_money应该是3个值吧,
),
1 => array(
'user_id' => '2',
'user_money' => '50',
'payment'=>'充值50卡号3453',
),
2=>array(
'user_id' => '3',
'user_money' => '50',
'payment'=>'充值50卡号5585',
)
);
$b=array_merge_recursive($a[0],$a[1]);
$b=array_merge_recursive($b,$a[2]);
var_dump($b);
得到结果
array(3) { ["user_id"]=> array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" } ["user_money"]=> array(5) { [0]=> string(2) "10" [1]=> string(2) "20" [2]=> string(3) "-40" [3]=> string(2) "50" [4]=> string(2) "50" } ["payment"]=> array(4) { [0]=> string(18) "充值10卡号1232" [1]=> string(18) "充值20卡号5345" [2]=> string(18) "充值50卡号3453" [3]=> string(18) "充值50卡号5585" } }

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Nehmen Sie zwei Arrays als Eingabe, versuchen Sie, die beiden Arrays zusammenzuführen oder zu verketten und das Ergebnis im dritten Array zu speichern. Die Logik zum Zusammenführen zweier Arrays lautet wie folgt: J=0,k=0for(i=0;i<o;i++){//mergingtwoarrays if(a[j]<=b[k]){ c[i] =a[j]; j++; }else{ &nbs

In JavaScript ist das Zusammenführen von Arrays eine übliche Operation und kann mithilfe der Concat-Funktion erreicht werden. Die Concat-Funktion kann mehrere Arrays zu einem neuen Array zusammenfassen. Schauen wir uns ein konkretes Codebeispiel an. Zuerst definieren wir mehrere Arrays als Beispieldaten: vararr1=[1,2,3]; vararr2=[4,5,6]; Als nächstes verwenden wir die concat-Funktion

So führen Sie in PHP mehrere Arrays anhand bestimmter Schlüsselnamen zu einem Array zusammen. Während der Entwicklung müssen wir häufig mehrere Arrays anhand bestimmter Schlüsselnamen zu einem Array zusammenführen. Dieser Bedarf kommt bei der Arbeit mit Daten sehr häufig vor, insbesondere wenn beispielsweise mit Datenbank-Ergebnismengen gearbeitet wird. In diesem Artikel werden mehrere gängige Methoden zum Erreichen dieser Funktion vorgestellt und entsprechende Codebeispiele gegeben. Methode 1: Schleifendurchlauf verwenden Die einfachste Methode besteht darin, eine Schleife zu verwenden, um alle Arrays zu durchlaufen und die entsprechenden Werte entsprechend dem angegebenen Schlüsselnamen zum neuen Array hinzuzufügen. Der Beispielcode lautet wie folgt: fu

So führen Sie zwei PHP-Arrays zu einem Array zusammen. Bei der PHP-Entwicklung müssen wir häufig zwei Arrays zu einem Array zusammenführen. Dieser Vorgang kommt bei Datenverarbeitungs- und Array-Operationen sehr häufig vor. In diesem Artikel erfahren Sie, wie Sie zwei Arrays mit PHP einfach und effizient zusammenführen. PHP bietet zwei Funktionen zum Zusammenführen von Arrays, nämlich array_merge() und array_merge_recursive(). Im Folgenden stellen wir die Verwendung und den Beispielcode dieser beiden Funktionen vor. ar

In PHP können Sie die Funktion „array_merge_recursive()“ verwenden, um zweidimensionale Arrays zusammenzuführen, ohne die Schlüsselwerte zu ändern. Diese Funktion überschreibt den Schlüsselnamen nicht, wenn zwei oder mehr Array-Elemente denselben Schlüsselnamen haben. Stattdessen werden mehrere Werte mit demselben Schlüsselnamen rekursiv zu einem Array geformt.

Einführung in PHP-Funktionen – array_combine(): Kombinieren Sie zwei Arrays zu einem assoziativen Array. In PHP gibt es viele praktische Funktionen, die uns bei der Verarbeitung und Bedienung von Arrays helfen können. Eine sehr nützliche Funktion ist array_combine(). In diesem Artikel wird die Verwendung dieser Funktion und ihres Beispielcodes vorgestellt. Die Funktion array_combine() verwendet den Wert eines Arrays als Schlüsselnamen und den Wert eines anderen Arrays als Schlüsselwert, um die beiden Arrays zu einem neuen assoziativen Array zusammenzuführen. Das

So führen Sie zwei Arrays in PHP zusammen. Bei der PHP-Programmierung kommt es häufig vor, dass Sie zwei Arrays zusammenführen müssen. PHP bietet eine Vielzahl von Methoden zum Implementieren von Array-Zusammenführungsvorgängen. In diesem Artikel werden einige der gängigen Methoden mit Codebeispielen vorgestellt. Methode 1: Verwenden Sie die Funktion array_merge. Die Funktion array_merge ist eine integrierte Funktion von PHP zum Zusammenführen von Arrays. Es akzeptiert mehrere Arrays als Parameter und gibt ein zusammengeführtes neues Array zurück. Im Folgenden wird die Funktion array_merge verwendet, um zwei zusammenzuführen

So führen Sie mehrere Arrays in PHP zusammen In PHP sind Arrays eine sehr wichtige Datenstruktur, die häufig zum Speichern und Betreiben mehrerer zusammengehöriger Datenelemente verwendet wird. Manchmal müssen wir mehrere Arrays zu einem Array zusammenführen, um die Daten bequemer verarbeiten zu können. In diesem Artikel wird erläutert, wie Sie mehrere Arrays in PHP zusammenführen, und es werden Codebeispiele bereitgestellt. PHP bietet eine Vielzahl von Methoden zum Zusammenführen von Arrays. Hier stellen wir drei gängige Methoden vor: die Verwendung des „+“-Operators, die Verwendung der Funktion array_merge und die Verwendung von array_m
