Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tentukan sama ada berbilang elemen berada dalam array php

Tentukan sama ada berbilang elemen berada dalam array php

WBOY
WBOYasal
2023-05-11 10:23:06751semak imbas

Dalam PHP, adalah perkara biasa untuk menentukan sama ada berbilang elemen berada dalam tatasusunan Artikel ini akan memperkenalkan cara melaksanakan fungsi ini.

Kaedah 1: Gunakan fungsi in_array

Fungsi in_array boleh menentukan sama ada elemen berada dalam tatasusunan adalah seperti berikut:

bool in_array ( campuran $needle. , tatasusunan $haystack [, bool $strict = FALSE ] )

Ia boleh dilihat bahawa fungsi ini mempunyai tiga parameter, parameter pertama mewakili elemen sasaran, parameter kedua mewakili tatasusunan yang hendak dicari dan parameter ketiga mewakili Sama ada untuk mendayakan mod ketat. Secara lalai, mod ketat tidak didayakan.

Oleh itu, kita boleh menggunakan fungsi in_array untuk menentukan sama ada berbilang elemen berada dalam tatasusunan melalui gelung. Kod sampel adalah seperti berikut:

<?php
$needleArr = ['element1', 'element2', 'element3'];
$haystackArr = ['element1', 'element3', 'element4', 'element5'];

foreach ($needleArr as $needle) {
    if (in_array($needle, $haystackArr)) {
        echo "$needle is in haystack array 
";
    } else {
        echo "$needle is NOT in haystack array 
";
    }
}

Hasil output ialah:

element1 is in haystack array
element2 is NOT in haystack array
element3 is in haystack array

Dalam kod di atas, kita mula-mula mentakrifkan tatasusunan sasaran $needleArr dan tatasusunan untuk dicari $haystackArr, dan kemudian lulus foreach Gelung menentukan sama ada setiap elemen dalam $needleArr wujud dalam $haystackArr secara bergilir-gilir, dan akhirnya mengeluarkan hasil penghakiman.

Perlu diambil perhatian bahawa fungsi in_array tidak mendayakan mod ketat secara lalai, iaitu, menukar elemen kepada rentetan untuk perbandingan. Jika anda perlu mendayakan mod ketat, anda boleh menetapkan parameter ketiga kepada benar, seperti ditunjukkan di bawah:

in_array($needle, $haystackArr, true);

Kaedah 2: Gunakan fungsi array_intersect Fungsi

array_intersect boleh membandingkan berbilang tatasusunan dan mencari Mereka Elemen biasa, sintaks khusus adalah seperti berikut:

array array_intersect ( array $array1 , array $array2 [, array $... ] )

Fungsi ini boleh membandingkan berbilang tatasusunan, antara yang pertama Parameter pertama mewakili tatasusunan pertama, parameter kedua mewakili tatasusunan kedua, dan seterusnya.

Oleh itu, kita juga boleh menggunakan fungsi array_intersect untuk lulus dalam pelbagai tatasusunan dan mencari persimpangan mereka Jika persimpangan itu tidak kosong, ini bermakna elemen yang ditentukan wujud dalam tatasusunan. Kod sampel adalah seperti berikut:

<?php
$needleArr = ['element1', 'element2', 'element3'];
$haystackArr = ['element1', 'element3', 'element4', 'element5'];

$intersectArr = array_intersect($needleArr, $haystackArr);
if (!empty($intersectArr)) {
    echo "There are some elements in the haystack array 
";
} else {
    echo "No elements in the haystack array 
";
}

Hasil output ialah:

There are some elements in the haystack array

Dalam kod di atas, kita mula-mula mentakrifkan tatasusunan sasaran $needleArr dan tatasusunan untuk dicari $haystackArr, dan kemudian lulus mereka Dalam fungsi array_intersect, jika persimpangan yang dikembalikan tidak kosong, ini bermakna elemen yang ditentukan wujud dalam tatasusunan.

Perlu diambil perhatian bahawa fungsi array_intersect mengekalkan kunci dalam tatasusunan asal, jadi tatasusunan yang dikembalikannya tidak semestinya bersebelahan, bergantung pada sama ada kunci tatasusunan asal adalah bersebelahan. Jika anda perlu mengekalkan perhubungan nilai kunci, gunakan fungsi array_intersect_assoc.

Kaedah 3: Gunakan fungsi array_diff

array_diff function boleh membandingkan berbilang tatasusunan dan mencari perbezaannya Sintaks khusus adalah seperti berikut:

array array_diff ( array $array1 , array. $array2 [, array $... ] )

Fungsi ini boleh membandingkan berbilang tatasusunan, di mana parameter pertama mewakili tatasusunan pertama, parameter kedua mewakili tatasusunan kedua dan seterusnya.

Oleh itu, kita juga boleh menggunakan fungsi array_diff untuk menghantar dalam berbilang tatasusunan dan mencari perbezaannya Jika perbezaannya adalah sama dengan tatasusunan asal, ini bermakna elemen yang ditentukan wujud dalam tatasusunan. Kod sampel adalah seperti berikut:

<?php
$needleArr = ['element1', 'element2', 'element3'];
$haystackArr = ['element1', 'element3', 'element4', 'element5'];

$diffArr = array_diff($needleArr, $haystackArr);
if ($diffArr !== $needleArr) {
    echo "There are some elements in the haystack array 
";
} else {
    echo "No elements in the haystack array 
";
}

Hasil output ialah:

There are some elements in the haystack array

Dalam kod di atas, kita mula-mula mentakrifkan tatasusunan sasaran $needleArr dan tatasusunan untuk dicari $haystackArr, dan kemudian berikannya Dalam fungsi array_diff, jika set perbezaan yang dikembalikan tidak sama dengan tatasusunan asal, ini bermakna elemen yang ditentukan wujud dalam tatasusunan.

Perlu diambil perhatian bahawa fungsi array_diff akan mengembalikan tatasusunan elemen yang wujud dalam tatasusunan pertama tetapi tidak dalam tatasusunan lain. Jadi, jika tatasusunan pertama itu sendiri tidak mengandungi elemen sasaran, kaedah di atas tidak mempunyai kesan.

Atas ialah kandungan terperinci Tentukan sama ada berbilang elemen berada dalam array 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