合并数组
$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" } }

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Mengambil dua tatasusunan sebagai input, cuba gabungkan atau gabungkan dua tatasusunan dan simpan hasilnya dalam tatasusunan ketiga. Logik untuk menggabungkan dua tatasusunan adalah seperti berikut-J=0,k=0untuk(i=0;i<o;i++){//mergingtwoarrays if(a[j]<=b[k]){ c[i] =a[j]; j++ }lain{ &nbs

Dalam JavaScript, penggabungan tatasusunan ialah operasi biasa dan boleh dicapai menggunakan fungsi concat. Fungsi concat boleh menggabungkan berbilang tatasusunan menjadi tatasusunan baharu. Mari lihat contoh kod khusus di bawah. Pertama, kami mentakrifkan beberapa tatasusunan sebagai data sampel: vararr1=[1,2,3];

Cara menggabungkan berbilang tatasusunan menjadi satu tatasusunan mengikut nama kunci yang ditentukan dalam PHP Semasa pembangunan, kita sering menghadapi keperluan untuk menggabungkan berbilang tatasusunan menjadi satu tatasusunan mengikut nama kunci yang ditentukan. Keperluan ini sangat biasa apabila bekerja dengan data, terutamanya apabila bekerja dengan set hasil pangkalan data, contohnya. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk mencapai fungsi ini dan memberikan contoh kod yang sepadan. Kaedah 1: Gunakan gelung traversal Kaedah paling mudah ialah menggunakan gelung untuk melintasi semua tatasusunan dan menambah nilai yang sepadan kepada tatasusunan baharu mengikut nama kunci yang ditentukan. Kod sampel adalah seperti berikut: fu

Bagaimana untuk menggabungkan dua tatasusunan PHP ke dalam satu tatasusunan Dalam pembangunan PHP, kita selalunya perlu menggabungkan dua tatasusunan menjadi satu tatasusunan. Operasi ini sangat biasa dalam pemprosesan data dan operasi tatasusunan. Artikel ini akan memperkenalkan cara menggabungkan dua tatasusunan dengan mudah dan cekap menggunakan PHP. PHP menyediakan dua fungsi untuk menggabungkan tatasusunan, iaitu array_merge() dan array_merge_recursive(). Di bawah ini kami memperkenalkan penggunaan dan kod sampel kedua-dua fungsi ini masing-masing. ar

Dalam PHP, anda boleh menggunakan fungsi "array_merge_recursive()" untuk menggabungkan tatasusunan dua dimensi tanpa mengubah nilai kunci fungsi ini tidak akan menimpa nama kunci semasa mengendalikan situasi di mana dua atau lebih elemen tatasusunan mempunyai nama kunci yang sama; sebaliknya, berbilang nilai dengan nama kunci yang sama dibentuk secara rekursif menjadi tatasusunan.

Pengenalan kepada fungsi PHP—array_combine(): Menggabungkan dua tatasusunan ke dalam tatasusunan bersekutu Dalam PHP, terdapat banyak fungsi praktikal yang boleh membantu kami memproses dan mengendalikan tatasusunan. Satu fungsi yang sangat berguna ialah array_combine(). Artikel ini akan memperkenalkan penggunaan fungsi ini dan kod sampelnya. Fungsi array_combine() menggunakan nilai satu tatasusunan sebagai nama kunci dan nilai tatasusunan lain sebagai nilai kunci untuk menggabungkan dua tatasusunan menjadi tatasusunan bersekutu baharu. ini

Bagaimana untuk menggabungkan dua tatasusunan dalam PHP Dalam pengaturcaraan PHP, anda sering menghadapi situasi di mana anda perlu menggabungkan dua tatasusunan. PHP menyediakan pelbagai kaedah untuk melaksanakan operasi penggabungan tatasusunan Artikel ini akan memperkenalkan beberapa kaedah biasa, dengan contoh kod. Kaedah 1: Gunakan fungsi array_merge Fungsi array_merge ialah fungsi terbina dalam yang disediakan oleh PHP untuk menggabungkan tatasusunan. Ia menerima berbilang tatasusunan sebagai parameter dan mengembalikan tatasusunan baharu yang digabungkan. Berikut ialah penggunaan fungsi array_merge untuk menggabungkan dua

Cara menggabungkan berbilang tatasusunan dalam PHP Dalam PHP, tatasusunan ialah struktur data yang sangat penting yang sering digunakan untuk menyimpan dan mengendalikan berbilang item data berkaitan. Kadangkala, kita perlu menggabungkan berbilang tatasusunan menjadi satu tatasusunan untuk memproses data dengan lebih mudah. Artikel ini akan menerangkan cara menggabungkan berbilang tatasusunan dalam PHP dan menyediakan contoh kod. PHP menyediakan pelbagai kaedah untuk menggabungkan tatasusunan Di sini kami akan memperkenalkan tiga kaedah biasa: menggunakan operator "+", menggunakan fungsi array_merge dan menggunakan array_m
