Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menapis Array dalam PHP Seperti `LIKE \'%search%\'` SQL?

Bagaimana untuk Menapis Array dalam PHP Seperti `LIKE \'%search%\'` SQL?

DDD
DDDasal
2024-11-04 03:19:31698semak imbas

How to Filter an Array in PHP Like SQL's `LIKE '%search%'`?

Menapis Nilai daripada Array Serupa dengan SQL LIKE '%search%'

Merancang medan autolengkap menggunakan JQueryUI menimbulkan cabaran apabila ia datang untuk menapis nilai daripada tatasusunan berdasarkan input pengguna. Pertimbangkan tatasusunan yang mengandungi warna: ['oren', 'biru', 'hijau', 'merah', 'merah jambu', 'coklat', 'hitam']. Jika pengguna menaip 'bl,' output yang dikehendaki ialah ['biru', 'hitam'].

Untuk mencapai ini, seseorang mungkin mempertimbangkan untuk menggunakan array_diff(), tetapi pendekatan yang lebih sesuai wujud: preg_grep. Fungsi ini menggabungkan ungkapan biasa dengan penapisan, menjadikannya ideal untuk tugas yang sedang dijalankan.

Pelaksanaan menggunakan preg_grep:

<code class="php">$input = preg_quote('bl', '~'); // Don't forget to quote the input string
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');

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

Dalam kod ini, preg_quote digunakan untuk melarikan aksara khas dalam rentetan input. Ungkapan biasa '~w ~' sepadan dengan mana-mana perkataan (satu atau lebih huruf) yang mengandungi rentetan yang dimasukkan. preg_grep kemudian menggunakan penapis ini pada tatasusunan data, menghasilkan padanan yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Array dalam PHP Seperti `LIKE \'%search%\'` SQL?. 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