2012-05-09 85 views
-1

我有一個二維數組,我想知道如何使用PHP進行搜索。我的數組是:搜索組合2D數組值?

Array (
    [0] => Array (
     [Image] => 1.png 
     [Manufacturer] => Manu1 
     [Model] => Model1 
    ) 
    [1] => Array (
     [Image] => 2.png 
     [Manufacturer] => Manu2 
     [Model] => Model2 
    ) 
    [2] => Array ( 
     [Image] => 3.png 
     [Manufacturer] => Manu3 
     [Model] => Model3 
    ) 
) ] 

我希望人們能夠做的是做一個「喜歡」上搜索製造商和型號的綜合價值。也就是說,如果有人搜尋:

Ma = Would return all 
Mo = Would return all 
Manu3 = Would return Manu 3 Model3 
Manu2 Mo =Would return Manu 2 Mo'XXXX' 
Model1 = Would return Manu 1 Model 1 
+0

如果我搜索'png'應該發生什麼??? – shadyyx

+0

可能沒有結果,因爲他說要搜索製造商和型號的綜合價值 – Jeroen

回答

1

這是的Jeroen一個修復代碼:

function searchArray($query, $array) { 
    $tmp = array(); 
    $subq = explode(' ', $query); 
    foreach ($array as $key => $val) { 
     foreach($subq as $q) { 
      if (strpos($val['Manufacturer'], $q) !== 0 || strpos($val['Model'], $q) !== 0) { 
       $tmp[$key] = $val; 
      } 
     } 
    } 
    return $tmp; 
} 

print_r($tmp); 
+0

我的不好,我看錯了這個問題;這應該完全工作 – Jeroen

+0

仍然不是,如果搜索查詢是「Manu3 Mo」,它什麼也找不到......我們必須解析查詢...... OMG。 – shadyyx

+0

它基本上是一列汽車。所以如果你搜索思域,它會返回本田思域。如果你搜索本田,它會返回所有本田。希望這是有道理的?上述代碼是否仍然有效?該圖片僅用於返回任何搜索找到的圖片 – K20GH