Rumah > pembangunan bahagian belakang > masalah PHP > Terokai cara PHP menentukan sama ada rentetan wujud dalam tatasusunan

Terokai cara PHP menentukan sama ada rentetan wujud dalam tatasusunan

PHPz
Lepaskan: 2023-04-25 10:11:33
asal
755 orang telah melayarinya

Dalam PHP, kita selalunya perlu menentukan sama ada tatasusunan mengandungi rentetan tertentu. Dalam artikel ini, kita akan meneroka cara PHP menentukan sama ada rentetan tertentu wujud dalam tatasusunan dan cara mencari serta menapis elemen dalam tatasusunan.

Kaedah 1: Gunakan fungsi in_array()

php menyediakan fungsi in_array(), yang boleh mencari dengan mudah sama ada elemen yang ditentukan disertakan dalam tatasusunan. Sintaks fungsi ini adalah seperti berikut:

in_array($search, $array);
Salin selepas log masuk

di mana parameter $search ialah elemen yang akan ditemui dan parameter $array ialah tatasusunan yang akan ditemui. Mengembalikan benar jika elemen $search terkandung dalam $array, false sebaliknya. Kod sampel adalah seperti berikut:

$fruits = array('apple', 'banana', 'orange', 'kiwi');
$search1 = 'banana';
$search2 = 'grape';

if (in_array($search1, $fruits)) {
    echo "Fruits array contains $search1";
} else {
    echo "Fruits array does not contain $search1";
}

if (in_array($search2, $fruits)) {
    echo "Fruits array contains $search2";
} else {
    echo "Fruits array does not contain $search2";
}
Salin selepas log masuk

Laksanakan kod di atas, hasilnya akan menjadi:

Fruits array contains banana
Fruits array does not contain grape
Salin selepas log masuk

Kaedah 2: Gunakan fungsi array_search()

php juga menyediakan fungsi array_search() boleh mencari kejadian pertama elemen dalam tatasusunan. Sintaks fungsi ini adalah seperti berikut:

array_search($search, $array);
Salin selepas log masuk

di mana parameter $search ialah elemen yang akan ditemui dan parameter $array ialah tatasusunan yang akan ditemui. Jika elemen carian terkandung dalam tatasusunan, mengembalikan nama kunci kejadian pertama elemen dalam tatasusunan jika tidak, mengembalikan palsu. Kod sampel adalah seperti berikut:

$fruits = array('apple', 'banana', 'orange', 'kiwi');
$search1 = 'banana';
$search2 = 'grape';

$result1 = array_search($search1, $fruits);
$result2 = array_search($search2, $fruits);

if ($result1 !== false) {
    echo "$search1 found at position $result1";
} else {
    echo "$search1 not found in the array";
}

if ($result2 !== false) {
    echo "$search2 found at position $result2";
} else {
    echo "$search2 not found in the array";
}
Salin selepas log masuk

Laksanakan kod di atas, hasilnya akan menjadi:

banana found at position 1
grape not found in the array
Salin selepas log masuk

Kaedah 3: Gunakan in_array() digabungkan dengan array_map() fungsi

Kadangkala, kita perlu mencari sama ada tatasusunan mengandungi sebarang elemen daripada set rentetan. Pada masa ini, kita boleh menggunakan fungsi in_array() digabungkan dengan fungsi array_map(). Fungsi array_map() melaksanakan fungsi yang ditentukan pengguna pada setiap elemen tatasusunan dan mengembalikan tatasusunan baharu yang mengandungi hasil semua fungsi. Kita boleh memanggil fungsi in_array() dalam fungsi array_map() untuk mencari nilai. Kod sampel adalah seperti berikut:

$fruits = array('apple', 'banana', 'orange', 'kiwi');
$search = array('apple', 'watermelon');

$found = array_filter(array_map(function($needle) use($fruits){
    return in_array($needle, $fruits);
}, $search));

if ($found) {
    echo "Found these fruits: ";
    print_r($found);
} else {
    echo "No fruits found";
}
Salin selepas log masuk

Laksanakan kod di atas, hasilnya ialah:

Found these fruits: Array
(
    [0] => 1
)
Salin selepas log masuk

Dalam kod di atas, kami menggunakan fungsi array_map() dan array_filter( ) fungsi . Fungsi array_map() berulang melalui setiap elemen dalam tatasusunan $search, memanggil fungsi tanpa nama pada setiap elemen yang menyemak sama ada elemen itu terkandung dalam tatasusunan $fruits. Fungsi array_filter() menerima tatasusunan dan mengembalikan tatasusunan yang mengandungi hanya elemen yang benar. Dalam kes ini, $found mengandungi hanya kedudukan di mana unsur itu wujud.

Kaedah 4: Gunakan fungsi preg_grep()

Jika kita perlu mencari elemen dalam tatasusunan yang mengandungi corak tertentu, seperti semua elemen bermula dengan huruf 'a', kita boleh gunakan preg_grep dalam fungsi php (). Fungsi preg_grep() mengembalikan tatasusunan yang mengandungi semua elemen yang sepadan dengan corak. Kod sampel adalah seperti berikut:

$fruits = array('apple', 'banana', 'orange', 'kiwi');
$pattern = '/^a/';

$found = preg_grep($pattern, $fruits);

if ($found) {
    echo "Found these fruits: ";
    print_r($found);
} else {
    echo "No fruits found";
}
Salin selepas log masuk

Melaksanakan kod di atas, hasilnya akan menjadi:

Found these fruits: Array
(
    [0] => apple
)
Salin selepas log masuk

Dalam kod di atas, kami menggunakan ungkapan biasa "/^a/ " untuk memadankan elemen bermula dengan huruf 'a'. Fungsi preg_grep() menerima ungkapan biasa dan tatasusunan untuk dicari, dan ia mengembalikan tatasusunan yang mengandungi semua elemen yang sepadan dengan ungkapan.

Ringkasan

Artikel ini memperkenalkan empat kaedah berbeza dalam php untuk mencari sama ada tatasusunan mengandungi rentetan tertentu. Kaedah ini termasuk menggunakan fungsi in_array(), fungsi array_search(), fungsi in_array() digabungkan dengan fungsi array_map() dan fungsi preg_grep(). Kaedah ini semuanya kaedah pertanyaan tatasusunan yang biasa digunakan dalam PHP Di tempat kerja, kita boleh memilih kaedah yang sesuai untuk digunakan mengikut situasi tertentu.

Atas ialah kandungan terperinci Terokai cara PHP menentukan sama ada rentetan wujud dalam tatasusunan. 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