2011-05-28 108 views
1

我有一個變量$ a = 271,245,789;,變量中的分隔值

<select name="cat" class="main" multiple="multiple"> 
        <option value="">--Select Category--</option> 
        <? 
        ////////////////display category////////////////// 
        $cat_details=mysql_query("select category_id,category from category_tb order by category"); 
        while([email protected]_fetch_array($cat_details)){?> 
        <option value="<?=$cat_data['category_id'];?>" <? if($a==$cat_data['category_id']){?> selected="selected"<? } ?>><?=$cat_data['category'];?></option> 
        <? } ?> 
       </select> 

在mysql中,我們有find_in_set這些「,」分隔值。我怎樣才能做到這一點在PHP

回答

3

這樣的事情?

if (in_array($value, explode(',', $a)) { 
    // Found 
} 

好了,我現在才知道,什麼FIND_IN_SET()確實

$index = array_search($value, explode(',', $a)); 

在所有explode()您可以將此CSV字符串分割成及其零部件,然後將其應用於每array - 功能。

0

你可以做到這一點像($key$value$your_string位置):

$key = array_search((string)$your_value, explode(',', $your_string)); 

array_search()explode()查看文檔。

0

作爲替代in_array /爆炸變通方法,您也可以用測試:

function find_in_set($set, $value) { 
    return strstr(",$set,", ",$value,"); 
} 

無論哪種方式,我想分開了這一點;您的模板已經足夠複雜了。 (你應該真的移動mysql_query,並提供一個包裝函數,它只是簡單地返回一個列表。)