Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencapai Kefungsian SQL LIKE \'%search%\' dalam Tatasusunan PHP?

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

DDD
DDDasal
2024-11-04 11:02:02545semak imbas

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>

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!

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