Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menentukan sama ada tatasusunan berada dalam tatasusunan dalam php

Bagaimana untuk menentukan sama ada tatasusunan berada dalam tatasusunan dalam php

PHPz
Lepaskan: 2023-04-27 09:40:27
asal
631 orang telah melayarinya

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;
}
Salin selepas log masuk

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中';
}
Salin selepas log masuk

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');
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan