Dalam pembangunan PHP, kita selalunya perlu menentukan sama ada tatasusunan berada dalam tatasusunan lain.
Sebagai contoh, terdapat senario di mana terdapat tatasusunan A. Kita perlu menentukan sama ada semua elemen dalam tatasusunan A wujud dalam tatasusunan B yang lain.
Dalam PHP, menentukan sama ada tatasusunan berada dalam tatasusunan lain boleh dicapai melalui fungsi in_array(). Walau bagaimanapun, fungsi ini tidak dapat menentukan sama ada satu tatasusunan terkandung sepenuhnya dalam tatasusunan lain. Oleh itu, kita perlu menulis fungsi sendiri untuk melaksanakan fungsi ini.
Berikut ialah pelaksanaan fungsi tersuai:
function array_in_array($needle, $haystack) { $result = true; foreach ($needle as $value) { if (!in_array($value, $haystack)) { $result = false; break; } } return $result; }
Fungsi ini menerima dua parameter: $needle dan $haystack.
$needle mewakili tatasusunan untuk dinilai dan $haystack mewakili tatasusunan yang akan dinilai.
Nilai pulangan fungsi adalah daripada jenis Boolean, menunjukkan sama ada $needle disertakan sepenuhnya dalam $haystack.
Berikut ialah contoh penggunaan:
$arrayA = array('apple', 'banana', 'orange'); $arrayB = array('orange', 'banana', 'apple', 'pear'); $result = array_in_array($arrayA, $arrayB); if ($result) { echo '数组A中所有元素都在数组B中'; } else { echo '数组A中存在元素不在数组B中'; }
Dalam contoh di atas, $arrayA mengandungi 3 elemen dan $arrayB mengandungi 4 elemen. Semua elemen dalam $arrayA wujud dalam $arrayB Oleh itu, nilai $result adalah benar, dan atur cara akan mengeluarkan "Semua elemen dalam tatasusunan A berada dalam tatasusunan B."
Jika $arrayB ditukar kepada yang berikut:
$arrayB = array('orange', 'banana');
Kemudian selepas melaksanakan kod di atas, atur cara akan mengeluarkan "Elemen dalam tatasusunan A bukan dalam tatasusunan B".
Fungsi ini agak mudah, kuncinya ialah memahami prinsipnya.
Kita boleh melintasi elemen dalam $needle melalui gelung foreach, dan kemudian menentukan sama ada setiap elemen berada dalam $haystack. Jika terdapat elemen yang tiada dalam $haystack, ini bermakna $needle bukan subset $haystack, dan fungsi tersebut mengembalikan palsu.
Dengan cara ini, kita boleh menentukan dengan mudah sama ada tatasusunan berada dalam tatasusunan lain!
Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada tatasusunan berada dalam tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!