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

Bagaimanakah Saya Boleh Meratakan Tatasusunan Berbilang Dimensi dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2025-01-05 09:31:39318semak imbas

How Can I Flatten Multidimensional Arrays in PHP?

PHP Ratakan Tatasusunan Berbilang Dimensi

meratakan tatasusunan berbilang dimensi kepada satu dimensi boleh menjadi penting untuk beberapa tugas pemprosesan data. PHP menawarkan cara yang mudah untuk melaksanakan penukaran ini menggunakan fungsi manipulasi tatasusunan.

Penyelesaian Menggunakan array_merge

$array = [
    [1, 2, 3],
    [4, 5, 6],
];

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

echo "<pre class="brush:php;toolbar:false">";
print_r($result); // Output: [1, 2, 3, 4, 5, 6]

Fungsi call_user_func_array() membolehkan anda menghantar tatasusunan argumen kepada fungsi. Dalam kes ini, kami menggunakannya untuk memanggil fungsi array_merge() dengan setiap elemen tatasusunan berbilang dimensi sebagai argumen.

Penyelesaian Menggunakan Fungsi Rekursif

function array_flatten($array) {
    $return = [];
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            $return = array_merge($return, array_flatten($value));
        } else {
            $return[$key] = $value;
        }
    }
    return $return;
}

$array = [
    [1, 2, 3],
    [4, 5, 6],
];

$result = array_flatten($array);

echo "<pre class="brush:php;toolbar:false">";
print_r($result); // Output: [1, 2, 3, 4, 5, 6]

Fungsi rekursif ini berfungsi dengan mengulang melalui tatasusunan dan secara rekursif memanggil dirinya sendiri pada mana-mana elemen tatasusunan yang ditemuinya. Ia menggabungkan hasil daripada setiap panggilan rekursif ke dalam tatasusunan leper terakhir.

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