数组合并
2个数组:
//数组aarray ( 'SU13080800340' => array ( 0 => 'CVT121015001', 1 => 'CVT121015002', 2 => 'CVT121226001', ),)//数组barray ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '3', 'total' => '48', 'c1_time' => '2013-08-10 15:00:00',)
求达到合并的效果:
array ('0' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '3', 'total' => '48', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121015001',),'1' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '3', 'total' => '48', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121015002',),'2' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '3', 'total' => '48', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121016001',),)
回复讨论(解决方案)
楼主你应该更明确的描述你的需求
如果仅仅是按照你的样例来写代码,扩展起来可能又会出现问题
按照你的样例,可以这么写:
//数组a$a = array ( 'SU13080800340' => array ( 0 => 'CVT121015001', 1 => 'CVT121015002', 2 => 'CVT121226001' ));//数组b$b = array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '3', 'total' => '48', 'c1_time' => '2013-08-10 15:00:00');$res = array();foreach($a['SU13080800340'] as $key=>$each){ $res[] = $b; $res[$key]['packageno'] = $each;}var_export($res);
结果:
array ( 0 => array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '3', 'total' => '48', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121015001', ), 1 => array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '3', 'total' => '48', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121015002', ), 2 => array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '3', 'total' => '48', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121226001', ),)
楼主你应该更明确的描述你的需求
如果仅仅是按照你的样例来写代码,扩展起来可能又会出现问题
我看了下数据结构,stockno对应的packageno的结果如数组a所示,数组b是数据表按照cust_no进行group by,例子更新下:
//数组aarray ( 'SU13080800340' => array ( 0 => 'CVT121015001', 1 => 'CVT121015002', 2 => 'CVT121226001', ),)//数组barray ('0' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '1', 'total' => '16', 'c1_time' => '2013-08-10 15:00:00',),'1' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5B', 'mount_total' => '2', 'total' => '32', 'c1_time' => '2013-08-10 15:00:00',),)
求达到合并的效果:
array ('0' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '1', 'total' => '16', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121015001',),'1' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '2', 'total' => '32', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121015002',),'2' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '2', 'total' => '32', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121016001',),)
没看出来你这两个数组之间是如何判断联系的.
//数组a$a = array ( 'SU13080800340' => array ( 0 => 'CVT121015001', 1 => 'CVT121015002', 2 => 'CVT121226001', ),);//数组b$b = array ('0' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '1', 'total' => '16', 'c1_time' => '2013-08-10 15:00:00',),'1' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5B', 'mount_total' => '2', 'total' => '32', 'c1_time' => '2013-08-10 15:00:00',),);foreach($b as $item) { for($i=0; $i<$item['mount_total']; $i++) { $item['packageno'] = current(array_splice($a[$item['stock_no']], 0, 1)); $res[] = $item; }}var_export($res);
array ( 0 => array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '1', 'total' => '16', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121015001', ), 1 => array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5B', 'mount_total' => '2', 'total' => '32', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121015002', ), 2 => array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5B', 'mount_total' => '2', 'total' => '32', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121226001', ),)
//数组a$a = array ( 'SU13080800340' => array ( 0 => 'CVT121015001', 1 => 'CVT121015002', 2 => 'CVT121226001', ),);//数组b$b = array ('0' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '1', 'total' => '16', 'c1_time' => '2013-08-10 15:00:00',),'1' =>array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5B', 'mount_total' => '2', 'total' => '32', 'c1_time' => '2013-08-10 15:00:00',),);foreach($b as $item) { for($i=0; $i<$item['mount_total']; $i++) { $item['packageno'] = current(array_splice($a[$item['stock_no']], 0, 1)); $res[] = $item; }}var_export($res);
array ( 0 => array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5A', 'mount_total' => '1', 'total' => '16', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121015001', ), 1 => array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5B', 'mount_total' => '2', 'total' => '32', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121015002', ), 2 => array ( 'stock_no' => 'SU13080800340', 'adress' => 'B', 'arr_time' => '2013-08-14 09:00:00', 'c_type' => 'P32E', 'cust_no' => '310F61VA5B', 'mount_total' => '2', 'total' => '32', 'c1_time' => '2013-08-10 15:00:00', 'packageno' => 'CVT121226001', ),)
版大这样也只是做出来他举的特定例子吧... 没法判断数组A和B就是这种恰好顺序对应的关系啊...
版大这样也只是做出来他举的特定例子吧... 没法判断数组A和B就是这种恰好顺序对应的关系啊...
关系是写死的。谢谢了!

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

AI Hentai Generator
Menjana ai hentai secara percuma.

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



Apabila menggunakan array_merge() dalam PHP untuk menggabungkan tatasusunan, ia akan menghasilkan hasil yang mengelirukan jika ia mengandungi rentetan kosong atau tatasusunan kosong. Penyelesaian: 1. Gunakan array_filter() untuk menapis nilai nol. 2. Untuk kes yang mengandungi tatasusunan kosong, gunakan fungsi cantum rekursif array_merge_recursive_distinct() untuk mengekalkan struktur tatasusunan yang konsisten.

Untuk gabungan tatasusunan dalam PHP, kerumitan masa bergantung pada algoritma: O(m+n) untuk array_merge() dan + operator, dengan m dan n ialah saiz tatasusunan. Penggabungan gelung juga O(m+n). Pilih kaedah yang sesuai berdasarkan faktor seperti saiz tatasusunan dan ketersediaan, dan pertimbangkan keperluan prestasi untuk mengoptimumkan aplikasi anda.

Perbandingan kecekapan penggabungan tatasusunan PHP: Kerumitan masa bagi tiga kaedah Array_merge(), + operator dan Array_replace() semuanya O(n), yang bermaksud bahawa masa penggabungan adalah berkadar dengan bilangan elemen tatasusunan. Kerumitan ruang bagi ketiga-tiga kaedah ini juga adalah O(n), yang bermaksud bahawa penggunaan memori adalah berkadar dengan bilangan elemen tatasusunan. Keputusan yang diukur menunjukkan bahawa Array_merge() dan + operator adalah lebih pantas daripada Array_replace() apabila menggabungkan tatasusunan besar.

Apabila menggabungkan tatasusunan dalam PHP, anda boleh memilih kaedah berikut untuk menangani elemen pendua: gunakan array_merge() digabungkan dengan array_unique() untuk mengalih keluar elemen pendua. Gunakan array_replace() untuk menulis ganti elemen pendua tanpa mengubah tatasusunan asal. Gunakan array_diff() untuk mengalih keluar elemen daripada satu tatasusunan yang tiada dalam tatasusunan lain.

Analisis fungsi PHP5.5: Cara menggunakan fungsi array_reduce untuk menggabungkan elemen tatasusunan menjadi satu nilai Dalam pengaturcaraan PHP, kita selalunya perlu memproses tatasusunan, dan kadangkala kita perlu menggabungkan elemen tatasusunan menjadi satu nilai. Pada masa ini, kita boleh menggunakan fungsi array_reduce yang diperkenalkan dalam versi PHP 5.5 untuk melaksanakan fungsi ini. Artikel ini akan memperkenalkan penggunaan fungsi array_reduce secara terperinci dan memberikan contoh kod yang sepadan. Fungsi array_reduce ialah a

Tatasusunan PHP ialah struktur data yang sangat biasa digunakan, dan operasi penggabungan dan pemisahan tatasusunan sering terlibat dalam pembangunan. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk melaksanakan kedua-dua operasi ini, dan melampirkan contoh kod yang sepadan. 1. Cantumkan tatasusunan Operasi cantuman tatasusunan boleh dilaksanakan menggunakan fungsi array_merge(). Fungsi ini menerima berbilang tatasusunan sebagai argumen dan menggabungkannya menjadi tatasusunan baharu. Contoh kod: $array1=["apple","ba

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

Fungsi PHParray_merge() ialah fungsi terbina dalam untuk menggabungkan berbilang tatasusunan. Fungsi ini boleh menggabungkan berbilang tatasusunan menjadi tatasusunan baharu. Dalam artikel ini, kita akan membincangkan cara menggabungkan berbilang tatasusunan menggunakan fungsi PHParray_merge(). Cara menggunakan fungsi PHParray_merge() Fungsi PHParray_merge() mempunyai banyak kegunaan, tetapi penggunaan yang paling biasa adalah untuk menggabungkan dua atau lebih kumpulan menjadi satu. Berikut ialah contoh mudah: $
