Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menentukan sama ada tatasusunan berbilang dimensi mengandungi nilai kunci tertentu dalam PHP

Bagaimana untuk menentukan sama ada tatasusunan berbilang dimensi mengandungi nilai kunci tertentu dalam PHP

PHPz
PHPzasal
2023-04-18 10:25:20833semak imbas

PHP ialah bahasa pengaturcaraan yang sangat popular yang boleh digunakan untuk membangunkan pelbagai jenis aplikasi dan laman web. Dalam PHP, memanipulasi tatasusunan adalah salah satu keperluan yang sangat biasa. Tatasusunan berbilang dimensi ialah struktur data kompleks yang terdiri daripada pelbagai tatasusunan, selalunya digunakan untuk menyimpan dan memproses sejumlah besar data. Dalam kes ini, kita sering perlu menyemak sama ada tatasusunan berbilang dimensi mengandungi nilai kunci tertentu. Artikel ini akan memperkenalkan cara untuk menentukan sama ada tatasusunan berbilang dimensi mengandungi nilai kunci tertentu dalam PHP.

Secara amnya, kita boleh menggunakan fungsi isset() untuk menyemak sama ada nilai kunci tertentu wujud dalam tatasusunan. Sebagai contoh, diberikan tatasusunan berikut:

$array = array(
  "foo" => "bar",
  "bar" => "foo"
);

Kita boleh menggunakan fungsi isset() untuk menyemak sama ada kunci "foo" terkandung dalam tatasusunan ini:

if(isset($array["foo"])){
  echo "foo exists!";
}

Dalam contoh di atas, Kami menggunakan fungsi isset() untuk menyemak sama ada kekunci "foo" wujud dalam tatasusunan, dan jika ya, cetak mesej "foo wujud!".

Walau bagaimanapun, dalam tatasusunan berbilang dimensi, keadaan menjadi lebih rumit. Kita tidak boleh hanya menggunakan fungsi isset() untuk menyemak sama ada nilai kunci terkandung dalam tatasusunan berbilang dimensi. Kita perlu menggunakan beberapa kaedah lain untuk menyelesaikan tugas ini.

Kaedah 1: Gunakan fungsi array_key_exists()

Pertama, kita boleh menggunakan fungsi array_key_exists() untuk menyemak sama ada tatasusunan berbilang dimensi mengandungi nilai kunci tertentu. Fungsi array_key_exists() boleh menerima dua parameter Parameter pertama ialah nama kunci untuk diperiksa, dan parameter kedua ialah tatasusunan.

Sebagai contoh, diberikan tatasusunan berbilang dimensi berikut:

$array = array(
  "foo" => array(
    "bar" => "baz"
  )
);

Kita boleh menggunakan fungsi array_key_exists() untuk menyemak sama ada kekunci "bar" terkandung dalam tatasusunan ini:

if(array_key_exists("bar", $array["foo"])){
  echo "bar exists!";
}

Dalam contoh di atas, kami menggunakan fungsi array_key_exists() untuk menyemak sama ada kekunci "bar" wujud dalam tatasusunan berbilang dimensi Jika wujud, mesej "bar wujud!"

Kaedah 2: Gunakan fungsi rekursif

Kaedah lain ialah menulis fungsi rekursif untuk menyemak sama ada tatasusunan berbilang dimensi mengandungi nilai kunci tertentu. Fungsi rekursif boleh berulang melalui setiap subarray tatasusunan berbilang dimensi dan kemudian menyemak sama ada setiap subarray mengandungi nilai utama.

Sebagai contoh, diberikan tatasusunan berbilang dimensi berikut:

$array = array(
  "foo" => array(
    "bar" => "baz"
  )
);

Kita boleh menulis fungsi rekursif berikut untuk menyemak sama ada "bar" kunci terkandung dalam tatasusunan ini:

function array_key_exists_recursive($key, $array) {
    if (array_key_exists($key, $array)) {
        return true;
    }
    foreach ($array as $element) {
        if (is_array($element)) {
            if (array_key_exists_recursive($key, $element)) {
                return true;
            }
        }
    }
    return false;
}

Dalam contoh di atas, kami menentukan fungsi rekursif yang dipanggil array_key_exists_recursive. Fungsi ini menerima dua parameter, parameter pertama ialah nama kunci untuk diperiksa, dan parameter kedua ialah tatasusunan. Fungsi ini mula-mula menyemak sama ada nilai kunci terkandung dalam tatasusunan semasa, dan jika ya, mengembalikan benar. Jika tidak, ulangi setiap subarray dalam tatasusunan dan panggil fungsi array_key_exists_recursive secara rekursif untuk menyemak sama ada nilai kunci terkandung dalam subarray. Akhir sekali, jika nilai kunci tidak dijumpai, false dikembalikan.

Dalam penggunaan sebenar, kita boleh memanggil fungsi rekursif ini untuk menyemak sama ada tatasusunan berbilang dimensi mengandungi nilai kunci tertentu. Contohnya:

if(array_key_exists_recursive("bar", $array)){
  echo "bar exists!";
}

Dalam contoh di atas, kami menggunakan fungsi array_key_exists_recursive() untuk menyemak sama ada kekunci "bar" wujud dalam tatasusunan berbilang dimensi. Jika ia wujud, mesej "bar wujud!" keluaran.

Ringkasan

Dalam PHP, menentukan sama ada tatasusunan berbilang dimensi mengandungi nilai kunci tertentu ialah tugas biasa. Walaupun anda boleh menggunakan fungsi isset() untuk menyemak sama ada nilai kunci wujud dalam tatasusunan satu dimensi, menyemak sama ada nilai kunci wujud dalam tatasusunan berbilang dimensi memerlukan menggunakan kaedah lain. Artikel ini memperkenalkan dua kaedah, satu ialah menggunakan fungsi array_key_exists() dan satu lagi ialah menulis fungsi rekursif untuk diperiksa. Bergantung pada situasi sebenar, kita boleh memilih kaedah yang sesuai untuk menentukan sama ada tatasusunan multidimensi mengandungi nilai kunci tertentu.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada tatasusunan berbilang dimensi mengandungi nilai kunci tertentu 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