Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php tatasusunan dua dimensi kepada tatasusunan satu dimensi

php tatasusunan dua dimensi kepada tatasusunan satu dimensi

王林
王林asal
2023-05-23 10:47:37407semak imbas

Dalam PHP, tatasusunan ialah struktur data yang sangat berkuasa dan fleksibel yang boleh menyimpan pelbagai jenis data. Tatasusunan PHP boleh berupa tatasusunan satu dimensi, tatasusunan dua dimensi, tatasusunan berbilang dimensi, dsb.

Dalam proses pembangunan sebenar, kita selalunya perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi untuk memudahkan proses melintasi dan memproses data. Artikel ini akan memperkenalkan cara menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam PHP.

PHP tatasusunan dua dimensi

Dalam PHP, tatasusunan dua dimensi ialah tatasusunan di mana elemen dalam tatasusunan juga tatasusunan. Contohnya:

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

Di sini kami mencipta tatasusunan $pelajar, yang mengandungi tiga elemen, setiap elemen ialah tatasusunan yang mengandungi nama, umur dan gred pelajar.

Tukar tatasusunan dua dimensi kepada tatasusunan satu dimensi

Dalam PHP, terdapat banyak cara untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Berikut ialah beberapa kaedah yang biasa digunakan:

Kaedah 1: Loop traversal

Kita boleh menggelung melalui setiap elemen tatasusunan dua dimensi dan kemudian menggabungkannya ke dalam tatasusunan satu dimensi yang baharu.

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array();
foreach ($students as $student) {
    foreach ($student as $key => $value) {
        $newArray[$key][] = $value;
    }
}

print_r($newArray);

Hasil keluaran kod di atas ialah:

Array
(
    [name] => Array
        (
            [0] => John
            [1] => Mike
            [2] => Mary
        )

    [age] => Array
        (
            [0] => 23
            [1] => 21
            [2] => 22
        )

    [score] => Array
        (
            [0] => 90
            [1] => 80
            [2] => 85
        )

)

Seperti yang anda lihat, melalui lintasan gelung, kami menukar tatasusunan dua dimensi kepada tatasusunan bersekutu baharu, di mana setiap elemen sepadan kepada nilai kunci A asal untuk setiap elemen tatasusunan dua dimensi.

Kaedah 2: Gunakan fungsi array_column

PHP menyediakan fungsi array_column untuk mendapatkan lajur yang ditentukan daripada tatasusunan berbilang dimensi. Kita boleh menggunakan fungsi ini untuk mendapatkan nama, umur dan markah setiap pelajar dan kemudian menggabungkan mereka ke dalam tatasusunan satu dimensi baharu.

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array(
    "name" => array_column($students, "name"),
    "age" => array_column($students, "age"),
    "score" => array_column($students, "score")
);

print_r($newArray);

Hasil keluaran kod di atas adalah sama dengan kaedah satu.

Kaedah 3: Gunakan fungsi array_reduce

Kita boleh menggunakan fungsi array_reduce untuk mengulangi tatasusunan dua dimensi dan kemudian menggabungkannya menjadi tatasusunan satu dimensi baharu.

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array_reduce($students, function($carry, $student) {
    foreach ($student as $key => $value) {
        $carry[$key][] = $value;
    }
    return $carry;
}, array());

print_r($newArray);

Hasil keluaran kod di atas adalah sama dengan kaedah satu.

Kaedah 4: Fungsi tersuai

Kami juga boleh menyesuaikan fungsi untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi.

function array_convert($arr) {
    $result = array();
    foreach ($arr as $row) {
        foreach ($row as $key => $value) {
            $result[$key][] = $value;
        }
    }
    return $result;
}

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array_convert($students);
print_r($newArray);

Hasil keluaran kod di atas adalah sama dengan kaedah satu.

Ringkasan

Dalam PHP, terdapat banyak cara untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi, termasuk traversal gelung, menggunakan fungsi array_column, menggunakan fungsi array_reduce dan tersuai fungsi. Kaedah mana yang hendak dipilih bergantung pada keperluan senario tertentu dan tabiat pembangunan. Dalam proses pembangunan sebenar, kita perlu menggunakan kaedah ini secara fleksibel untuk memproses data dengan lebih cekap.

Atas ialah kandungan terperinci php tatasusunan dua dimensi kepada tatasusunan satu dimensi. 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