Bagaimana untuk Mencapai Kefungsian SQL LIKE \'%search%\' dalam Tatasusunan PHP?

DDD
Lepaskan: 2024-11-04 11:02:02
asal
544 orang telah melayarinya

How to Achieve SQL LIKE '%search%' Functionality in PHP Arrays?

Penapisan SQL Serupa dalam PHP: Mengembalikan Padanan dengan Teks Separa

Menapis nilai daripada tatasusunan berdasarkan carian teks separa, serupa dengan SQL SEPERTI pertanyaan '%search%', boleh menjadi tugas penting dalam banyak senario pengaturcaraan. Dalam PHP, mencapai ini menggunakan tatasusunan memerlukan teknik khusus.

Mari kita pertimbangkan contoh yang diberikan. Memandangkan tatasusunan yang mengandungi nama warna, matlamatnya adalah untuk mengembalikan hanya warna yang separa sepadan dengan teks input pengguna. Sebagai contoh, dengan input "bl", output yang dijangkakan ialah ["biru", "hitam"] daripada tatasusunan input ["oren", "biru", "hijau", "merah", "merah jambu", "coklat", "hitam"].

Menggunakan Ungkapan Biasa dengan preg_grep

Daripada menggunakan array_filter dengan fungsi lambda tersuai, pendekatan yang lebih mudah dan cekap adalah dengan menggunakan fungsi preg_grep. Ia menggabungkan kuasa ungkapan biasa dengan penapisan tatasusunan:

<code class="php">$input = preg_quote('bl', '~'); // Quote the input string for use in regex
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');

$result = preg_grep('~' . $input . '~', $data);</code>
Salin selepas log masuk

Dalam kod ini:

  • preg_quote melindungi rentetan input dengan melepaskan aksara khas seperti ., ?, dan *.
  • preg_grep menggunakan pembatas PHP ~ untuk regex dan corak ~' . $input . '~ sepadan dengan mana-mana rentetan yang mengandungi subrentetan input bl.
  • tatasusunan $result yang terhasil hanya akan mengandungi elemen yang separa sepadan dengan input, iaitu biru dan hitam.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Kefungsian SQL LIKE \'%search%\' dalam Tatasusunan 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