Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menentukan Kedalaman Tatasusunan PHP Multidimensi?

Bagaimana untuk Menentukan Kedalaman Tatasusunan PHP Multidimensi?

Patricia Arquette
Lepaskan: 2024-11-08 10:59:02
asal
489 orang telah melayarinya

How to Determine the Depth of a Multidimensional PHP Array?

Menentukan Kedalaman Tatasusunan PHP Berbilang Dimensi

Tatasusunan PHP boleh mengandungi tatasusunan bersarang, mewujudkan struktur hierarki yang kompleks. Menentukan kedalaman maksimum bersarang dalam tatasusunan ini boleh menjadi penting untuk analisis dan manipulasi data.

Fungsi untuk Mengira Kedalaman Tatasusunan

Satu pendekatan untuk menentukan kedalaman tatasusunan ialah dengan melintasi elemennya secara rekursif , mengira bilangan tahap. Fungsi berikut, array_depth(), mengambil tatasusunan sebagai input dan mengira kedalaman maksimumnya:

function array_depth($array) {
    $max_depth = 0;

    foreach ($array as $element) {
        if (is_array($element)) {
            $depth = $array_depth($element);
            if ($depth > $max_depth) {
                $max_depth = $depth;
            }
        }
    }

    return $max_depth + 1;
}
Salin selepas log masuk

Dalam fungsi ini:

  • Semakan is_array() memastikan bahawa bersarang elemen diproses secara rekursif.
  • Kedalaman ditambah 1 untuk setiap tahap bersarang.
  • Nilai akhir yang dikembalikan mewakili kedalaman maksimum tatasusunan.

Pendekatan Alternatif Menggunakan print_r()

Kaedah lain mengelakkan potensi isu pengulangan tak terhingga . Ia menggunakan lekukan dalam output print_r(), yang mencerminkan struktur tatasusunan. Fungsi array_depth() di bawah menggunakan pendekatan ini:

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;
}
Salin selepas log masuk
  • print_r() menukar tatasusunan menjadi rentetan dengan garis inden untuk setiap peringkat.
  • Fungsi explode() berpecah rentetan menjadi baris.
  • Lekukan untuk setiap baris dikira dan dibandingkan dengan maksimum lekukan.
  • Lekukan maksimum (dibahagikan dengan 2) mewakili kedalaman tatasusunan, kerana setiap tahap lekukan menunjukkan peningkatan kedalaman sebanyak 1.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Kedalaman Tatasusunan PHP Multidimensi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan