PHP将两个关联数组合并函数提高函数效率_php技巧
在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了吧?

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

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

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.

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

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

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

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
