Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengira Kedalaman Tatasusunan Bersarang dalam PHP?

Bagaimanakah Saya Boleh Mengira Kedalaman Tatasusunan Bersarang dalam PHP?

Patricia Arquette
Patricia Arquetteasal
2024-11-08 05:05:01781semak imbas

How Can I Calculate the Depth of Nested Arrays in PHP?

Menentukan Kedalaman Tatasusunan Bersarang dalam PHP

Tatasusunan ialah struktur data serba boleh dalam PHP, membenarkan elemen disimpan dalam tatasusunan lain. Ciri ini mendayakan organisasi data yang kompleks, tetapi ia boleh mencabar untuk menentukan tahap maksimum tatasusunan bersarang dalam struktur tertentu.

Untuk menangani perkara ini, fungsi boleh dicipta yang mengira kedalaman tatasusunan, menunjukkan tahap maksimum tatasusunan bersarang. Jika tatasusunan tidak mengandungi sebarang tatasusunan bersarang, ia mengembalikan 1; jika ia mengandungi satu atau lebih tatasusunan bersarang, ia mengembalikan 2; dan seterusnya.

Penyelesaian Alternatif untuk Rekursi Infinite:

Satu pendekatan untuk mencari kedalaman tatasusunan ialah menggunakan print_r() untuk menyemak rekursi tak terhingga. Fungsi ini menjana perwakilan rentetan tatasusunan, dan lekukan keluarannya boleh mendedahkan kedalaman struktur.

function array_depth($array) {
    $max_indentation = 1;

    $array_str = print_r($array, true);
    $lines = explode("\n", $array_str);

    foreach ($lines as $line) {
        $indentation = (strlen($line) - strlen(ltrim($line))) / 4;

        if ($indentation > $max_indentation) {
            $max_indentation = $indentation;
        }
    }

    return ceil(($max_indentation - 1) / 2) + 1;
}

Penyelesaian ini memberikan penentuan tepat kedalaman tatasusunan, mengelakkan kemungkinan perangkap yang dikaitkan dengan fungsi rekursif.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Kedalaman 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