Jadual Kandungan
回复讨论(解决方案)

数组合并

Jun 23, 2016 pm 02:20 PM
Cantuman tatasusunan

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',)
Salin selepas log masuk


求达到合并的效果:
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',),)
Salin selepas log masuk


回复讨论(解决方案)

楼主你应该更明确的描述你的需求

如果仅仅是按照你的样例来写代码,扩展起来可能又会出现问题

按照你的样例,可以这么写:


//数组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);
Salin selepas log masuk


结果:
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',  ),)
Salin selepas log masuk

楼主你应该更明确的描述你的需求
如果仅仅是按照你的样例来写代码,扩展起来可能又会出现问题
我看了下数据结构,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',),)
Salin selepas log masuk


求达到合并的效果:
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',),)
Salin selepas log masuk

没看出来你这两个数组之间是如何判断联系的.

//数组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);
Salin selepas log masuk
Salin selepas log masuk
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',  ),)
Salin selepas log masuk
Salin selepas log masuk

//数组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);
Salin selepas log masuk
Salin selepas log masuk
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',  ),)
Salin selepas log masuk
Salin selepas log masuk


版大这样也只是做出来他举的特定例子吧...  没法判断数组A和B就是这种恰好顺序对应的关系啊...

版大这样也只是做出来他举的特定例子吧...  没法判断数组A和B就是这种恰好顺序对应的关系啊...

关系是写死的。谢谢了!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menangani tatasusunan kosong selepas menggabungkan tatasusunan PHP? Bagaimana untuk menangani tatasusunan kosong selepas menggabungkan tatasusunan PHP? Apr 28, 2024 pm 01:51 PM

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.

Bagaimana untuk mempertimbangkan kerumitan masa apabila menggabungkan tatasusunan PHP? Bagaimana untuk mempertimbangkan kerumitan masa apabila menggabungkan tatasusunan PHP? Apr 28, 2024 pm 02:18 PM

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.

Bagaimanakah kecekapan penggabungan tatasusunan PHP dibandingkan? Bagaimanakah kecekapan penggabungan tatasusunan PHP dibandingkan? Apr 28, 2024 am 11:09 AM

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.

Bagaimana untuk menangani elemen pendua apabila menggabungkan tatasusunan PHP? Bagaimana untuk menangani elemen pendua apabila menggabungkan tatasusunan PHP? Apr 28, 2024 pm 10:42 PM

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 PHP 5.5: Cara menggunakan fungsi array_reduce untuk menggabungkan elemen tatasusunan menjadi satu nilai Analisis fungsi PHP 5.5: Cara menggunakan fungsi array_reduce untuk menggabungkan elemen tatasusunan menjadi satu nilai Jul 30, 2023 pm 05:18 PM

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

Bagaimana untuk menggabungkan dan memisahkan tatasusunan PHP Bagaimana untuk menggabungkan dan memisahkan tatasusunan PHP Sep 05, 2023 am 08:47 AM

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 Bagaimana untuk menggabungkan dua tatasusunan dalam PHP Jul 07, 2023 am 09:57 AM

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

Gabungkan berbilang tatasusunan menggunakan fungsi PHP array_merge(). Gabungkan berbilang tatasusunan menggunakan fungsi PHP array_merge(). Jun 27, 2023 am 08:33 AM

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: $

See all articles