2012-03-28 67 views
0

這裏有一段代碼,我想任何人都可以告訴我什麼是即時通訊做不對,因爲我沒有得到期望的結果 (請參閱查詢獲取我以下結果的匹配排序陣列

- 61|0|0|0|0|0|0|0|0|0|0|0|0|0|70|0|0|66|0|0| 
- 63|0|0|0|0|0|0|0|0|0|0|0|0|0|78|0|0|69|0|0| 

)。我希望價值61|0|0|0|0|0|0|0|0|0|0|0|0|0|70|0|0|66|0|0|匹配61|66|70|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|我該怎麼做?

$value = '61|66|70|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|' $toCompare = explode("|", $value, -1); sort($toCompare); $query = $db -> query("select groups,category_group from products "); while($compare = $query -> fetch_assoc()){ $compareWith = explode("|", $compare['category_group']); sort($compareWith); if ($compareWith == $toCompare) $compareResult = $compare['category_group']; }
+0

您的$值應該引用,因爲它是一個字符串。 – 2012-03-28 06:58:10

+0

您是否嘗試過'var_dump($ compareWith,$ toCompare)'來查看它們是否確實在相同的ordeR中? – 2012-03-28 06:59:09

+0

在查詢中有「組」,但表達式中有「category_group」...? – MrWhite 2012-03-28 07:02:52

回答

0

您只能從產品表中獲取groups列,但在循環中您使用的是category_group並且每次覆蓋$compareResult。使它成爲數組,你將得到所有結果數組。

$compareResult = array(); 
$query = $db -> query("select groups,category_group from products "); 
    while($compare = $query -> fetch_assoc()){ 
     $compareWith = explode("|", $compare['category_group']); 
     sort($compareWith); 
    if ($compareWith == $toCompare) $compareResult[] = $compare; 
} 
+0

我做了你所說的更正,但仍然得到一個空陣列作爲結果 – 2012-03-28 07:13:40

+0

因爲你給有限的信息,編輯你的問題,並添加'產品'表結構和陣列的結果與你想要的細節 – safarov 2012-03-28 07:15:14

+0

謝謝@safarow – 2012-03-28 07:35:02