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!