2
使用array_filter我能夠使用搜索表單(文本輸入)顯示我的數組數據。但我無法顯示包含關鍵字的所有數組。獲取包含關鍵字的數組值
比如我搜索關鍵字「產品1個測試」
應該顯示所有產品名稱爲產品,,測試和產品與包含產品描述,,test
我的數組看起來像這樣:
$p_arrays[] = array('name'=> 'Product 1','description' => 'Test Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'location' => 'A city', 'type' => 'Type 1', 'status' => 'new', 'tags'=>'', 'page_url'=>'p1.html', 'image'=>'products/assets/images/1/prod-image.jpg');
$p_arrays[] = array('name'=> 'Product 2','description' => 'Test Donec eleifend quam neque, ut mollis massa aliquet id.', 'location' => 'B city', 'type' => 'Type 1', 'status' => 'under', 'tags'=>'', 'page_url'=>'p2.html', 'image'=>'products/assets/images/2/prod-image.jpg');
$p_arrays[] = array('name'=> 'Product 3','description' => 'Nam non tristique mi.', 'location' => 'A city', 'type' => 'Type 3', 'status' => 'new', 'tags'=>'', 'page_url'=>'p3.html', 'image'=>'products/assets/images/3/prod-image.jpg');
$p_arrays[] = array('name'=> 'Product 4','description' => 'Vestibulum accumsan dolor id orci gravida viverra.', 'location' => 'C city', 'type' => 'Type 2', 'status' => 'new', 'tags'=>'', 'page_url'=>'p4.html', 'image'=>'products/assets/images/4/prod-image.jpg');
我至今嘗試過..
if (isset($_POST['keyword-input']) && $_POST['keyword-input']!=='') {
$keywords= ($_POST['keyword-input']);
$p_arrays = array_filter($p_arrays, function($p) use ($keywords) {
return (stripos(($p['description']), $keywords) !== false) || (stripos(($p['name']), $keywords) !== false);
});
什麼想法?
將關鍵字按空格分解爲數組並遍歷每個關鍵字。 – mkaatman
是否要查找名稱含有「產品」或「1」或「測試」的產品或含有「產品」或「1」或「測試」的描述? – erisco
@erisco是..這就是我想要做的.. –