Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Menapis Nilai Tatasusunan Seperti SQL SEPERTI \'%search%\' Menggunakan PHP?

Bagaimana Menapis Nilai Tatasusunan Seperti SQL SEPERTI \'%search%\' Menggunakan PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-04 04:32:29829semak imbas

How to Filter Array Values Like SQL LIKE '%search%' Using PHP?

Menapis Nilai Tatasusunan Seperti SQL SEPERTI '%search%' Menggunakan PHP

Untuk melaksanakan ciri autolengkap menggunakan JQueryUI, mendapatkan padanan abjad daripada tatasusunan berdasarkan input pengguna adalah penting. Pertimbangkan tatasusunan ["oren", "biru", "hijau", "merah", "merah jambu", "coklat", "hitam"]. Jika pengguna memasukkan "bl," anda hanya mahu memaparkan ["biru", "hitam"].

Daripada menggunakan array_filter dengan fungsi tersuai, penyelesaian yang lebih cekap ialah menggunakan fungsi preg_grep, yang membenarkan penapisan menggunakan ungkapan biasa.

Contoh:

<code class="php">$input = preg_quote('bl', '~'); // Protect against regex special characters
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');

$result = preg_grep('~' . $input . '~', $data);

print_r($result); // Output: Array ( [0] => blue [1] => black )</code>

Penjelasan:

  • preg_quote(' bl', '~') melepaskan aksara khas dalam rentetan input, memastikan bahawa ia dirawat secara literal dalam ungkapan biasa.
  • Ungkapan biasa ~ . $input . ~ mencari elemen dalam tatasusunan yang mengandungi rentetan input "bl" di mana-mana sahaja dalam nilai.
  • preg_grep menggunakan penapis ungkapan biasa ini pada tatasusunan $data, mengembalikan tatasusunan yang mengandungi hanya padanan yang memenuhi syarat.

Atas ialah kandungan terperinci Bagaimana Menapis Nilai Tatasusunan Seperti SQL SEPERTI \'%search%\' Menggunakan 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