Rumah pembangunan bahagian belakang tutorial php PHP将两个关联数组合并函数提高函数效率_php技巧

PHP将两个关联数组合并函数提高函数效率_php技巧

May 17, 2016 am 08:47 AM
tatasusunan bersekutu

在foreach中循环查询数据代码量比较少,但是性能比较低,好点的解决办法是将id收集起来,用in一次性查询,但是这引发了数据结构不是我们用PHP自带的函数可以合并的,今天测试了一下:

使用下面的字节写的函数可以解决

从数据库中取出来的数据总是或多或少不符合我们心目中的数据结构,类似于下面的俩个数组,要形成SQL中类似于left join后两个数组合并:

复制代码 代码如下:

$test1 = Array(
0 => Array(
'id' => 9478137,
'create_time' => 1394760724
),
1 => Array(
'id' => 9478138,
'create_time' => 1394760725
),
2 => Array(
'id' => 9478138,
'create_time' => 1394760725
)
);
$test2 = array(
0 => array(
'id' => 9478137,
'message' => 'love you'
),
1 => array(
'id' => 9478138,
'message' => 'miss you'
)
);

如果要将这两个数组,类似于sql中的left join 关联起来我们用什么函数呢?额我没有找见就自己写了
刚开始的时候,用的是嵌套循环:效率低下
复制代码 代码如下:

function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();
foreach($array1 as $key1 => $value1 ) {
foreach ($array2 as $key2 => $value2) {
if($value1[$field1] == $value2[$field2]) {
$ret[$key1] = array_merge($value1, $value2);
}
}
}
return $ret;
}

改进后的办法,使用数组下标,使用两次循环:形成类似于left join的方式
复制代码 代码如下:

$test1 = Array(
0 => Array(
'id' => 9478137,
'create_time' => 1394760724
),
1 => Array(
'id' => 9478138,
'create_time' => 1394760725
),
2 => Array(
'id' => 9478138,
'create_time' => 1394760725
)
);
$test2 = array(
0 => array(
'id' => 9478137,
'message' => 'love you'
),
1 => array(
'id' => 9478138,
'message' => 'miss you'
)
);

function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();

//使用数组下标的办法
foreach ($array2 as $key => $value) {
$array3[$value[$field1]] = $value;
}
foreach ($array1 as $key => $value) {
$ret[] = array_merge($array3[$value[$field1]], $value);
}
return $ret;
}
$ret = _mergerArray($test1, $test2, 'id', 'id');
print_r($ret);exit;

打印出来结果如下:
复制代码 代码如下:

Array
(
[0] => Array
(
[id] => 9478137
[message] => love you
[create_time] => 1394760724
)
[1] => Array
(
[id] => 9478138
[message] => miss you
[create_time] => 1394760725
)
[2] => Array
(
[id] => 9478138
[message] => miss you
[create_time] => 1394760725
)
)

相当于left join了吧?
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

Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 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)

Apakah perbezaan antara tatasusunan bersekutu dan tatasusunan indeks dalam php Apakah perbezaan antara tatasusunan bersekutu dan tatasusunan indeks dalam php Jul 13, 2023 pm 03:11 PM

Perbezaan antara tatasusunan bersekutu dan tatasusunan indeks dalam PHP ialah: 1. Tatasusunan indeks menggunakan indeks angka, manakala tatasusunan bersekutu menggunakan kunci rentetan untuk mengenal pasti dan mengakses elemen 2. Susunan elemen dalam tatasusunan indeks adalah sama dengan susunannya ia ditambahkan pada tatasusunan, manakala susunan unsur dalam tatasusunan bersekutu tidak penting 3. Tatasusunan diindeks boleh mengakses elemen tatasusunan melalui indeks berangka bermula dari 0, manakala tatasusunan bersekutu boleh menggunakan kunci rentetan untuk mengakses elemen tatasusunan; 4. Kekunci elemen tatasusunan diindeks bermula dari indeks angka 0 tatasusunan bersekutu yang kunci elemennya ialah rentetan.

Perbincangan mendalam tentang tatasusunan PHP: analisis komprehensif tatasusunan berbilang dimensi, tatasusunan bersekutu, dsb. Perbincangan mendalam tentang tatasusunan PHP: analisis komprehensif tatasusunan berbilang dimensi, tatasusunan bersekutu, dsb. Mar 13, 2024 pm 02:36 PM

Perbincangan mendalam tentang tatasusunan PHP: tatasusunan berbilang dimensi, tatasusunan bersekutu, dsb. Analisis komprehensif Tatasusunan dalam PHP ialah struktur data yang sangat penting yang boleh menyimpan berbilang item data dan mengaksesnya melalui indeks. Dalam PHP, tatasusunan boleh dibahagikan kepada jenis yang berbeza seperti tatasusunan diindeks, tatasusunan bersekutu, dan tatasusunan berbilang dimensi Setiap jenis mempunyai kegunaan dan ciri tersendiri. Artikel ini akan menyelidiki pelbagai jenis tatasusunan PHP, termasuk cara mengisytiharkan, mengakses, melintasi dan mengendalikan tatasusunan, dan akan memberikan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. 1. Nombor indeks tatasusunan indeks

Apakah maksud tatasusunan bersekutu php? Apakah maksud tatasusunan bersekutu php? Aug 03, 2023 pm 05:46 PM

Tatasusunan bersekutu PHP ialah jenis tatasusunan khas di mana setiap elemen terdiri daripada kunci dan nilai yang sepadan Tidak seperti tatasusunan biasa, indeks tatasusunan bersekutu tidak disusun dalam susunan berangka, tetapi menggunakan Kekunci seperti rentetan atau integer digunakan untuk mengenal pasti dan mengakses nilai. Tatasusunan bersekutu digunakan secara meluas dalam pelbagai tugas pengaturcaraan dalam PHP, termasuk penyimpanan data, pemprosesan borang, pertanyaan pangkalan data, dll.

Bagaimana untuk menjumlahkan tatasusunan bersekutu dalam php Bagaimana untuk menjumlahkan tatasusunan bersekutu dalam php Jul 14, 2023 am 11:41 AM

Kaedah untuk menjumlahkan tatasusunan bersekutu dalam PHP: 1. Gunakan foreach loop 2. Gunakan fungsi array_sum() 3. Gunakan fungsi array_reduce().

Gunakan fungsi PHP 'mysqli_fetch_assoc' untuk mendapatkan baris daripada set hasil sebagai tatasusunan bersekutu Gunakan fungsi PHP 'mysqli_fetch_assoc' untuk mendapatkan baris daripada set hasil sebagai tatasusunan bersekutu Jul 24, 2023 pm 08:12 PM

Mengambil baris daripada set hasil sebagai tatasusunan bersekutu menggunakan fungsi PHP "mysqli_fetch_assoc" Dalam PHP, berinteraksi dengan pangkalan data adalah tugas biasa. Apabila kami melaksanakan pertanyaan SELECT dan mendapatkan set hasil, kami biasanya perlu menyimpan data dalam set hasil ke dalam tatasusunan PHP untuk pemprosesan selanjutnya. PHP menyediakan pelbagai fungsi untuk memproses set hasil, salah satu fungsi yang biasa digunakan ialah "mysqli_fetch_assoc". Fungsi ini mendapat baris daripada set hasil

Bagaimana untuk membandingkan perbezaan tatasusunan bersekutu menggunakan fungsi array_diff_assoc dalam PHP Bagaimana untuk membandingkan perbezaan tatasusunan bersekutu menggunakan fungsi array_diff_assoc dalam PHP Jun 26, 2023 am 11:44 AM

Dengan perkembangan teknologi yang berterusan, pembangunan web telah menjadi lebih dan lebih popular PHP adalah salah satu bahasa pembangunan web yang digunakan secara meluas Dalam proses pemprosesan data, ia sering perlu untuk membandingkan perbezaan antara dua tatasusunan Ini boleh dicapai menggunakan fungsi array_diff_assoc dalam PHP. Fungsi array_diff_assoc digunakan untuk membandingkan perbezaan antara dua tatasusunan bersekutu dan mengembalikan tatasusunan baharu berdasarkan pasangan nilai kunci Ia mengembalikan tatasusunan yang mengandungi semua parameter dalam tatasusunan parameter.

Cara menggunakan tatasusunan bersekutu dalam PHP dan contoh Cara menggunakan tatasusunan bersekutu dalam PHP dan contoh Jul 15, 2023 pm 09:37 PM

Cara menggunakan dan contoh tatasusunan bersekutu dalam PHP Dalam PHP, tatasusunan ialah jenis data yang sangat biasa digunakan yang digunakan untuk menyimpan berbilang nilai dan boleh diakses oleh indeks atau kunci. Dalam kebanyakan kes, menggunakan tatasusunan bersekutu adalah lebih mudah daripada menggunakan tatasusunan diindeks kerana tatasusunan bersekutu boleh menggunakan kekunci tersuai untuk mengakses dan memanipulasi nilai dalam tatasusunan. Tatasusunan bersekutu ialah jenis tatasusunan yang mengaitkan kunci dan nilai. Setiap pasangan nilai kunci mempunyai kunci unik dalam tatasusunan, dan nilai yang sepadan boleh diakses dan diubah suai melalui kunci. Berikut ialah beberapa kaedah asas dan contoh menggunakan tatasusunan bersekutu

Panduan penggunaan fungsi PHP arsort(): Mengisih tatasusunan bersekutu dalam tertib menurun Panduan penggunaan fungsi PHP arsort(): Mengisih tatasusunan bersekutu dalam tertib menurun Jun 27, 2023 am 09:28 AM

Dalam pengaturcaraan PHP, tatasusunan ialah jenis data yang sangat biasa. PHP menyediakan banyak fungsi terbina dalam untuk memproses tatasusunan, antaranya fungsi arsort() ialah fungsi yang sangat berguna yang boleh digunakan untuk mengisih tatasusunan bersekutu dalam susunan menurun. Artikel ini akan memperkenalkan fungsi arsort() secara terperinci dan memberikan beberapa contoh praktikal. 1. Apakah fungsi arsort()? Fungsi arsort() ialah fungsi pengisihan tatasusunan terbina dalam PHP yang digunakan untuk mengisih tatasusunan dalam tertib menurun mengikut nilai tatasusunan bersekutu. Fungsi ini tidak akan berubah

See all articles