Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Meratakan Tatasusunan Berkunci Berangka Berbilang Dimensi dalam PHP?

Bagaimanakah Saya Boleh Meratakan Tatasusunan Berkunci Berangka Berbilang Dimensi dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-12-02 02:54:09934semak imbas

How Can I Flatten a Multidimensional Numeric-Keyed Array in PHP?

Meratakan Tatasusunan Berbilang Dimensi kepada Satu Dimensi

Menubah tatasusunan berbilang dimensi kepada tatasusunan satu dimensi boleh memberikan cabaran, terutamanya apabila tatasusunan asal hanya mengandungi kekunci angka. Tidak seperti pendekatan lain yang menampung kekunci yang berbeza-beza, soalan ini secara khusus menangani keperluan untuk meratakan tatasusunan berbilang dimensi dengan kekunci berangka mudah.

Penyelesaian:

Penyelesaian kepada masalah ini terletak pada menggunakan fungsi array_reduce() bersama array_merge() dan tatasusunan kosong sebagai hujah awal. Ini secara berkesan menggabungkan semua sub-tatasusunan secara rekursif ke dalam tatasusunan leper tunggal.

Kod:

array_reduce($array, 'array_merge', array())

Penjelasan:

  • array_reduce() secara berulang menggunakan fungsi yang ditentukan pengguna (array_merge dalam kes ini) kepada elemen tatasusunan, bersama-sama dengan nilai awal yang ditentukan (array()).
  • array_merge menggabungkan elemen semasa (sub-array) dengan hasil rata yang diperolehi setakat ini.
  • Tatasusunan kosong sebagai hujah awal berfungsi sebagai titik permulaan untuk penggabungan rekursif proses.

Contoh:

Pertimbangkan tatasusunan berbilang dimensi berikut:

$array = array(
    array(1, 2, 3),
    array(4, 5, 6)
);

Menggunakan penyelesaian merata:

$flattenedArray = array_reduce($array, 'array_merge', array());

$flattenedArray yang terhasil akan jadilah:

array(1, 2, 3, 4, 5, 6)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meratakan Tatasusunan Berkunci Berangka Berbilang Dimensi 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