Bagaimana untuk menggabungkan berbilang tatasusunan ke dalam satu tatasusunan mengikut nama kunci yang ditentukan dalam PHP

WBOY
Lepaskan: 2023-07-07 16:16:02
asal
1404 orang telah melayarinya

Cara menggabungkan berbilang tatasusunan menjadi satu tatasusunan mengikut nama kunci yang ditentukan dalam PHP

Dalam pembangunan, kami 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 loop traversal

Kaedah paling mudah ialah menggunakan gelung untuk melintasi semua tatasusunan dan menambah nilai yang sepadan ke tatasusunan baharu mengikut nama kunci yang ditentukan. Kod sampel adalah seperti berikut:

function mergeArrays($key, ...$arrays)
{
    $result = [];
    
    foreach ($arrays as $array) {
        if (isset($array[$key])) {
            $result[] = $array[$key];
        }
    }
    
    return $result;
}

$array1 = ['id' => 1, 'name' => 'Alice'];
$array2 = ['id' => 2, 'name' => 'Bob'];
$array3 = ['id' => 3, 'name' => 'Charlie'];

$result = mergeArrays('name', $array1, $array2, $array3);

print_r($result);
Salin selepas log masuk

Jalankan kod di atas, hasil output ialah:

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kaedah 2: Gunakan fungsi array_map

array_map untuk menggunakan fungsi panggil balik pada berbilang tatasusunan dan kembalikan tatasusunan baharu. Kita boleh menggunakan fungsi ini untuk menggabungkan berbilang tatasusunan. Kod sampel adalah seperti berikut:

function mergeArrays($key, ...$arrays)
{
    $callback = function ($array) use ($key) {
        return $array[$key] ?? null;
    };
    
    $result = array_map($callback, $arrays);
    
    return array_filter($result, function($value) {
        return $value !== null;
    });
}

$array1 = ['id' => 1, 'name' => 'Alice'];
$array2 = ['id' => 2, 'name' => 'Bob'];
$array3 = ['id' => 3, 'name' => 'Charlie'];

$result = mergeArrays('name', $array1, $array2, $array3);

print_r($result);
Salin selepas log masuk

Jalankan kod di atas, hasil output ialah:

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kaedah 3: Gunakan fungsi array_reduce

array_reduce fungsi digunakan untuk memproses secara berulang elemen dalam tatasusunan, memprosesnya mengikut yang ditentukan fungsi panggil balik, dan Kembalikan hasil akhir. Kita boleh menggunakan fungsi ini untuk menggabungkan berbilang tatasusunan. Kod sampel adalah seperti berikut:

function mergeArrays($key, ...$arrays)
{
    $callback = function ($result, $array) use ($key) {
        if (isset($array[$key])) {
            $result[] = $array[$key];
        }
        return $result;
    };
    
    $result = array_reduce($arrays, $callback, []);
    
    return $result;
}

$array1 = ['id' => 1, 'name' => 'Alice'];
$array2 = ['id' => 2, 'name' => 'Bob'];
$array3 = ['id' => 3, 'name' => 'Charlie'];

$result = mergeArrays('name', $array1, $array2, $array3);

print_r($result);
Salin selepas log masuk

Jalankan kod di atas, hasil output ialah:

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Di atas adalah contoh beberapa kaedah biasa untuk menggabungkan berbilang tatasusunan menjadi satu tatasusunan mengikut nama kunci yang ditentukan. Memilih kaedah yang sesuai mengikut situasi sebenar boleh meningkatkan kecekapan dan kebolehbacaan kod. Harap ini membantu!

Atas ialah kandungan terperinci Bagaimana untuk menggabungkan berbilang tatasusunan ke dalam satu tatasusunan mengikut nama kunci yang ditentukan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!