Tukar antara tatasusunan berbilang dimensi dalam php

PHPz
Lepaskan: 2023-05-23 11:25:37
asal
414 orang telah melayarinya

Dalam pengaturcaraan PHP, tatasusunan ialah struktur data yang sangat biasa digunakan dan tatasusunan berbilang dimensi menjadikannya lebih mudah untuk kami memproses data yang kompleks. Walau bagaimanapun, kadangkala kita perlu menukar tatasusunan berbilang dimensi ke dalam bentuk tatasusunan lain, atau menukar bentuk tatasusunan lain kepada tatasusunan berbilang dimensi. Artikel ini akan memperkenalkan cara menukar antara tatasusunan berbilang dimensi dalam PHP.

1. Tukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi

Dalam sesetengah kes, kita perlu menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi untuk memudahkan penyimpanan atau penghantaran data. PHP menyediakan array_values() fungsi yang sangat mudah, yang boleh menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi. Lihat kod contoh berikut:

$multi_dimension_array = array(
    array('a', 'b', 'c'),
    array('d' => 'e', 'f' => 'g'),
    array(1, 2, 3)
);
$one_dimension_array = array_values(array_reduce($multi_dimension_array, 'array_merge', array()));
print_r($one_dimension_array);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => e
    [f] => g
    [4] => 1
    [5] => 2
    [6] => 3
)
Salin selepas log masuk

Dalam kod sampel di atas, kami mula-mula mentakrifkan tatasusunan berbilang dimensi $multi_dimension_array, yang mengandungi tiga sub-tatasusunan. Kami kemudian menggunakan fungsi array_reduce() PHP dan fungsi array_merge() untuk menggabungkan berbilang subarray ke dalam tatasusunan satu dimensi. Akhir sekali, kami menggunakan fungsi array_values() untuk mengindeks semula tatasusunan satu dimensi yang digabungkan dan mengeluarkan hasilnya.

2. Menukar tatasusunan satu dimensi kepada tatasusunan berbilang dimensi

Begitu juga, kadangkala kita juga perlu menukar tatasusunan satu dimensi kepada tatasusunan berbilang dimensi. PHP juga menyediakan beberapa fungsi praktikal untuk mencapai tujuan ini. Dua kaedah akan diperkenalkan di bawah.

  1. Gunakan fungsi array_chunk()

Fungsi array_chunk() dalam PHP boleh memisahkan tatasusunan satu dimensi kepada berbilang tatasusunan kecil mengikut saiz yang ditentukan dan mengembalikan Tatasusunan dua dimensi baharu. Kod sampel adalah seperti berikut:

$one_dimension_array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
$multi_dimension_array = array_chunk($one_dimension_array, 3);
print_r($multi_dimension_array);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => d
            [1] => e
            [2] => f
        )

    [2] => Array
        (
            [0] => g
            [1] => h
            [2] => i
        )

    [3] => Array
        (
            [0] => j
        )

)
Salin selepas log masuk
Salin selepas log masuk

Dalam kod sampel di atas, kami mula-mula mentakrifkan tatasusunan satu dimensi $one_dimension_array. Kemudian, kami menggunakan fungsi array_chunk() untuk memisahkan $one_dimension_array kepada berbilang tatasusunan kecil dengan panjang 3 dan mengembalikan tatasusunan dua dimensi baharu $multi_dimension_array.

  1. Gunakan gelung foreach

Jika anda tidak mahu menggunakan fungsi array_chunk(), anda juga boleh menggunakan gelung foreach untuk menukar tatasusunan satu dimensi kepada tatasusunan pelbagai dimensi. Kod sampel adalah seperti berikut:

$one_dimension_array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
$multi_dimension_array = array();
$count = 0;
foreach ($one_dimension_array as $item) {
    $multi_dimension_array[floor($count / 3)][$count % 3] = $item;
    $count++;
}
print_r($multi_dimension_array);
Salin selepas log masuk

Hasil output ialah:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => d
            [1] => e
            [2] => f
        )

    [2] => Array
        (
            [0] => g
            [1] => h
            [2] => i
        )

    [3] => Array
        (
            [0] => j
        )

)
Salin selepas log masuk
Salin selepas log masuk

Dalam kod sampel di atas, kami mula-mula mentakrifkan tatasusunan dua dimensi kosong $multi_dimension_array, dan pembolehubah kiraan $count . Kami kemudian menggunakan gelung foreach untuk menggelungkan setiap elemen dalam tatasusunan $one_dimension_array dan menambah elemen itu pada tatasusunan $multi_dimension_array. Kami menggunakan floor($count / 3) untuk menentukan indeks subarray baharu dan $count % 3 untuk menentukan indeks elemen baharu dalam subarray. Akhir sekali, kami menggunakan fungsi print_r() untuk mengeluarkan keputusan.

3. Ringkasan

Dalam pengaturcaraan PHP, memproses tatasusunan adalah tugas yang sangat biasa. Sama ada ia menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi, atau menukar tatasusunan satu dimensi kepada tatasusunan berbilang dimensi, PHP menyediakan beberapa fungsi dan kaedah yang sangat praktikal. Melalui pengenalan artikel ini, saya percaya bahawa pembaca telah memahami penggunaan fungsi dan kaedah ini dan boleh menggunakannya secara fleksibel dalam pembangunan sebenar.

Atas ialah kandungan terperinci Tukar antara tatasusunan berbilang dimensi 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!