Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah tatasusunan php dalam tatasusunan?

Adakah tatasusunan php dalam tatasusunan?

WBOY
WBOYasal
2023-05-06 09:38:07561semak imbas

Dalam pengaturcaraan PHP, tatasusunan ialah struktur data biasa yang sering digunakan untuk menyimpan dan memproses sejumlah besar data. Dalam sesetengah kes, adalah perlu untuk menentukan sama ada tatasusunan berada dalam tatasusunan lain. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PHP untuk menentukan sama ada tatasusunan berada dalam tatasusunan lain.

Pertama sekali, kita perlu memahami perwakilan tatasusunan dalam PHP. Secara umumnya, tatasusunan PHP boleh dibuat dalam dua cara berikut:

1 Cipta menggunakan tatasusunan kata kunci:

$array1 = array(“apple”, “orange”, “banana”);

2. Cipta menggunakan kurungan segi empat sama []:

$array2 = [“apple”, “orange”, “banana”];

. Kedua-dua kaedah mencipta tatasusunan yang mengandungi beberapa elemen. Apabila menentukan sama ada tatasusunan berada dalam tatasusunan lain, kita perlu menggunakan fungsi terbina dalam PHP in_array(). Sintaksnya adalah seperti berikut:

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

Antaranya, parameter $needle ialah nilai yang akan ditemui, parameter $haystack ialah tatasusunan yang hendak dicari dan parameter $strict menunjukkan sama ada hendak menggunakan perbandingan kongruen. Fungsi ini akan mengembalikan nilai Boolean yang mewakili hasil carian.

Melalui fungsi in_array(), kita boleh menentukan dengan mudah sama ada nilai berada dalam tatasusunan. Sebagai contoh, kod berikut menentukan sama ada nilai "epal" berada dalam tatasusunan $array1:

if ( in_array(“apple”, $array1) ) {
    echo “yes”;
} else {
    echo “no”;
}

Jika "epal" berada dalam tatasusunan $array1, atur cara akan mengeluarkan "ya", jika tidak ia akan mengeluarkan "tidak".

Jadi, jika kita ingin menentukan sama ada tatasusunan berada dalam tatasusunan lain, bagaimana untuk mencapainya? Mari lihat contoh khusus:

$array1 = [“apple”, “orange”, “banana”];
$array2 = [“orange”, “banana”];

Dalam contoh di atas, $array2 ialah subset $array1, kerana semua elemen dalam $array2 muncul dalam $array1.

Untuk menentukan sama ada $array2 berada dalam $array1, kita perlu merentasi semua elemen dalam $array2 dan menentukan sama ada kesemuanya muncul dalam $array1. Kita boleh mencapai ini melalui gelung for:

$flag = true;
for ($i=0; $i<count($array2); $i++) {
    if( !in_array($array2[$i], $array1) ) {
        $flag = false;
        break;
    }
}
if ( $flag ) {
    echo “yes”;
} else {
    echo “no”;
}

Dalam kod di atas, kita mula-mula menetapkan pembolehubah $flag untuk menandakan keadaan apabila semua elemen ditemui. Kemudian, kami mengulangi semua elemen dalam $array2 dan menggunakan fungsi in_array() untuk menentukan sama ada kesemuanya muncul dalam $array1. Jika unsur didapati tiada dalam $array1, tetapkan pembolehubah $flag kepada palsu dan keluar dari gelung. Akhirnya, hasilnya adalah output berdasarkan nilai pembolehubah $flag.

Kaedah ini hanyalah cara pertimbangan yang mudah, yang biasanya dapat memenuhi keperluan kita. Walau bagaimanapun, dalam kerja sebenar, kita mungkin menghadapi situasi yang lebih kompleks, contohnya: tatasusunan mengandungi unsur tatasusunan lain, atau tatasusunan mengandungi tatasusunan berbilang dimensi, dsb. Untuk situasi ini, kita perlu menggunakan kaedah pertimbangan yang lebih kompleks, seperti menggunakan fungsi rekursi atau panggil balik.

Ringkasnya, menilai sama ada tatasusunan berada dalam tatasusunan lain dalam PHP pada asasnya adalah untuk merentasi tatasusunan dan membandingkan unsur-unsur di dalamnya. Dalam aplikasi praktikal, kita boleh menggunakan fungsi in_array() atau kaedah pertimbangan yang lebih kompleks untuk melaksanakan fungsi ini untuk memenuhi keperluan yang berbeza.

Atas ialah kandungan terperinci Adakah tatasusunan php dalam tatasusunan?. 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