Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan 2D kepada tatasusunan 1D menggunakan PHP

Bagaimana untuk menukar tatasusunan 2D kepada tatasusunan 1D menggunakan PHP

PHPz
PHPzasal
2023-04-25 09:05:141058semak imbas

Dalam PHP, tatasusunan dua dimensi ialah tatasusunan yang terdiri daripada tatasusunan berbilang satu dimensi, yang merupakan struktur data yang sangat biasa dalam pengaturcaraan. Walau bagaimanapun, dalam beberapa senario tertentu, kita mungkin perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi untuk memudahkan penggunaan dan pemprosesan program.

Di bawah, saya akan memperkenalkan cara menggunakan PHP untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi.

1. Gunakan gelung foreach

Kaedah yang paling biasa ialah menggunakan gelung foreach untuk mengekstrak setiap elemen tatasusunan dua dimensi dan menyimpannya dalam tatasusunan satu dimensi baharu.

$array = array(
    array('id' => 1, 'name' => 'Tom'),
    array('id' => 2, 'name' => 'Jerry')
);

$newArray = array();
foreach ($array as $value) {
    foreach ($value as $val) {
        $newArray[] = $val;
    }
}
print_r($newArray);

Hasil keluaran:

Array (
    [0] => 1
    [1] => Tom
    [2] => 2
    [3] => Jerry
)

2. Gunakan fungsi array_reduce

Kita juga boleh menggunakan fungsi array_reduce PHP untuk memproses tatasusunan dua dimensi.

$array = array(
    array('id' => 1, 'name' => 'Tom'),
    array('id' => 2, 'name' => 'Jerry')
);

$newArray = array_reduce($array, function ($result, $item) {
    return array_merge($result, array_values($item));
}, array());

print_r($newArray);

Hasil keluaran:

Array (
    [0] => 1
    [1] => Tom
    [2] => 2
    [3] => Jerry
)

3 Gunakan fungsi array_column

Jika kita hanya perlu mengekstrak lajur tertentu dalam tatasusunan dua dimensi, kita boleh. gunakan fungsi array_column PHP.

$array = array(
    array('id' => 1, 'name' => 'Tom', 'age' => 18),
    array('id' => 2, 'name' => 'Jerry', 'age' => 20)
);

$newArray = array_column($array, 'name');
print_r($newArray);

Hasil keluaran:

Array (
    [0] => Tom
    [1] => Jerry
)

4 Gunakan fungsi untuk menukar tatasusunan secara rekursif

Jika dimensi tatasusunan dua dimensi bersarang tidak tetap. , kita boleh menggunakan fungsi rekursif untuk melakukan penukaran.

$array = array(
    array('id' => 1, 'name' => 'Tom', 'languages' => array('PHP', 'Java')),
    array('id' => 2, 'name' => 'Jerry', 'languages' => array('Python', 'C++'))
);

function convert($array) {
    $newArray = array();
    foreach ($array as $value) {
        if (is_array($value)) {
            $newArray = array_merge($newArray, convert($value));
        } else {
            $newArray[] = $value;
        }
    }
    return $newArray;
}

$newArray = convert($array);
print_r($newArray);

Hasil keluaran:

Array (
    [0] => 1
    [1] => Tom
    [2] => PHP
    [3] => Java
    [4] => 2
    [5] => Jerry
    [6] => Python
    [7] => C++
)

Di atas adalah beberapa kaedah untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi Memilih kaedah yang sesuai mengikut situasi sebenar boleh sangat meningkatkan kecekapan kod dan kebolehbacaan.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan 2D kepada tatasusunan 1D menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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