Rumah  >  Artikel  >  Bagaimana untuk menukar tatasusunan php dua dimensi kepada tatasusunan satu dimensi

Bagaimana untuk menukar tatasusunan php dua dimensi kepada tatasusunan satu dimensi

百草
百草asal
2023-08-03 11:14:304395semak imbas

Cara menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam PHP: 1. Gunakan traversal gelung untuk melintasi tatasusunan dua dimensi dan tambahkan setiap elemen pada tatasusunan satu dimensi 2. Gunakan fungsi "array_merge". untuk menggabungkan berbilang tatasusunan Gabung ke dalam tatasusunan, hantar tatasusunan dua dimensi sebagai parameter kepada fungsi "array_merge", dan tukarkannya menjadi tatasusunan satu dimensi 3. Gunakan fungsi "array_reduce" untuk memproses semua nilai; dalam tatasusunan melalui fungsi panggil balik, dan Akhirnya mengembalikan hasil.

Bagaimana untuk menukar tatasusunan php dua dimensi kepada tatasusunan satu dimensi

Sistem pengendalian tutorial ini: sistem Windows 10, PHP versi 8.1.3, komputer DELL G3.

Dalam pengaturcaraan PHP, kadangkala kita perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Tatasusunan dua dimensi terdiri daripada tatasusunan berbilang satu dimensi, dan setiap tatasusunan satu dimensi juga mungkin mengandungi tatasusunan lain. Berikut ialah beberapa cara biasa untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi.

Kaedah 1: Gunakan lintasan gelung

Cara paling langsung ialah menggunakan gelung untuk melintasi tatasusunan dua dimensi dan menambah setiap elemen pada tatasusunan satu dimensi. Berikut ialah kod contoh mudah:

$twoDimensionalArray = array(
    array("apple", "banana", "orange"),
    array("car", "bike", "motorcycle"),
    array("sun", "moon", "stars")
);
$oneDimensionalArray = array();
foreach ($twoDimensionalArray as $array) {
    foreach ($array as $element) {
        $oneDimensionalArray[] = $element;
    }
}
print_r($oneDimensionalArray);

Dalam kod di atas, kami menggunakan dua gelung bersarang untuk melintasi setiap tatasusunan satu dimensi dalam tatasusunan dua dimensi, dan kemudian melintasi elemen dalam setiap tatasusunan satu dimensi, dan Tambahnya kepada tatasusunan 1D. Akhirnya, keputusan dikeluarkan melalui fungsi `print_r`.

Kaedah 2: Gunakan fungsi `array_merge`

PHP menyediakan fungsi `array_merge`, yang boleh menggabungkan berbilang tatasusunan menjadi satu tatasusunan. Kita boleh menghantar tatasusunan dua dimensi sebagai parameter kepada fungsi `array_merge` untuk menukarnya kepada tatasusunan satu dimensi. Di bawah ialah contoh kod menggunakan fungsi `array_merge`:

$twoDimensionalArray = array(
    array("apple", "banana", "orange"),
    array("car", "bike", "motorcycle"),
    array("sun", "moon", "stars")
);
$oneDimensionalArray = call_user_func_array('array_merge', $twoDimensionalArray);
print_r($oneDimensionalArray);

Dalam kod di atas, kami menggunakan fungsi `call_user_func_array` untuk menghantar tatasusunan dua dimensi sebagai parameter kepada fungsi `array_merge`. Parameter pertama fungsi `call_user_func_array` ialah nama fungsi yang akan dipanggil dan parameter kedua ialah tatasusunan yang diluluskan sebagai parameter. Akhirnya, keputusan dikeluarkan melalui fungsi `print_r`.

Kaedah 3: Gunakan fungsi `array_reduce`

Kaedah lain ialah menggunakan fungsi `array_reduce`, yang boleh memproses semua nilai dalam tatasusunan melalui fungsi panggil balik dan akhirnya mengembalikan hasil. Berikut ialah contoh kod menggunakan fungsi `array_reduce`:

$twoDimensionalArray = array(
    array("apple", "banana", "orange"),
    array("car", "bike", "motorcycle"),
    array("sun", "moon", "stars")
);
$oneDimensionalArray = array_reduce($twoDimensionalArray, function ($carry, $item) {
    return array_merge($carry, $item);
}, []);
print_r($oneDimensionalArray);

Dalam kod di atas, kami menggunakan fungsi `array_reduce` untuk melelaran ke atas tatasusunan 2D dan menghantar fungsi panggil balik. Fungsi panggil balik menerima dua parameter, `$carry` mewakili nilai pulangan bagi fungsi panggil balik terakhir (nilai awal ialah tatasusunan kosong) dan `$item` mewakili tatasusunan satu dimensi yang dilalui pada masa ini. Dalam fungsi panggil balik, kami menggunakan fungsi `array_merge` untuk menggabungkan elemen dalam setiap tatasusunan satu dimensi ke dalam `$carry`. Akhirnya, keputusan dikeluarkan melalui fungsi `print_r`.

Tidak kira kaedah yang anda pilih, anda boleh menukar tatasusunan 2D kepada tatasusunan 1D. Mengikut keperluan sebenar, anda boleh memilih kaedah yang paling sesuai untuk anda untuk menangani masalah penukaran tatasusunan dua dimensi.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan php 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