Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Meratakan Tatasusunan Bersarang dalam PHP?

Bagaimanakah Saya Boleh Meratakan Tatasusunan Bersarang dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-11-23 08:31:18490semak imbas

How Can I Flatten a Nested Array in PHP?

Menukar Tatasusunan Bersarang kepada Satu Dimensi

Dalam senario pengaturcaraan ini, anda menghadapi tatasusunan yang terdiri daripada subarray elemen tunggal. Tugas di tangan ialah untuk menukar struktur berbilang dimensi ini kepada tatasusunan satu dimensi.

Pendekatan Asli PHP

PHP menyediakan fungsi yang mudah dipanggil array_map yang boleh mengendalikan penukaran ini dengan cekap. Berikut ialah contoh:

$array = [[88868], [88867], [88869], [88870]];
$oneDimensionalArray = array_map('current', $array);

// Output: [88868, 88867, 88869, 88870]

Fungsi peta_susun mengambil fungsi panggil balik sebagai argumen pertama dan tatasusunan sebagai argumen kedua. Dalam kes ini, arus fungsi panggil balik mendapatkan semula elemen semasa daripada setiap subarray, dengan berkesan meratakan tatasusunan.

Generalisasi untuk Subarray Berbilang Elemen

Jika subarray mengandungi berbilang elemen, pendekatan di atas hanya akan mengembalikan elemen pertama setiap subarray. Untuk menangani senario ini, anda boleh menggunakan fungsi call_user_func_array:

$oneDimensionalArray = call_user_func_array('array_merge', $array);

// Output: [88868, 88867, 88869, 88870]

Fungsi call_user_func_array memanggil fungsi panggil balik dengan tatasusunan argumen, dalam kes ini, tatasusunan subarray. Fungsi array_merge menggabungkan semua elemen ke dalam tatasusunan tunggal, menghasilkan penukaran yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meratakan Tatasusunan Bersarang dalam 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