2015-06-21 53 views
0

我存儲在我的數據庫中的某些數據以逗號基於字符串是這樣的:PHP - 添加值基於逗號串/陣列

value1, value2, value3, value4 etc... 

這是字符串變量:

$data["subscribers"]; 

我有一個功能,根據用戶請求可以從字符串刪除它們的值添加它。

這是我如何刪除它:

/* Remove value from comma seperated string */ 
    function removeFromString($str, $item) { 
    $parts = explode(',', $str); 

    while(($i = array_search($item, $parts)) !== false) { 
     unset($parts[$i]); 
    } 

    return implode(',', $parts); 
    } 
    $newString = removeFromString($existArr, $userdata["id"]); 

所以在上面的例子中,我取出$用戶數據[「身份證」]從字符串(如果存在的話)。

我的問題是..我如何添加一個值到基於逗號的字符串?

+1

也許這只是我,但我覺得很奇怪,你可以拿出'removeFromString'邏輯,但'addToString'無法這樣做。 – light

+0

@light我喜歡你的想法:-0 –

+1

這真的不是一個好主意......將逗號分開的值存儲在數據庫中總會給人們帶來如此多的問題 –

回答

1

您可以使用$array[] = $var;簡單地做:

function addtoString($str, $item) { 
    $parts = explode(',', $str); 
    $parts[] = $item; 

    return implode(',', $parts); 
    } 
    $newString = addtoString($existArr, $userdata["id"]); 
0
function addToString($str, $item) { 
    $parts = explode(',', $str); 
    array_push($parts, $str); 
    return implode(',', $parts); 
} 
$newString = addToString($existArr, $userdata["id"]); 
+0

功能名稱應該是'addToString' – light

+0

酷,從我提出的版本,只需稍作更改就可以完成 –

+2

**注意:**如果您使用'array_push()'來將一個元素添加到數組中最好使用'$ array [] =',因爲這樣就不會有調用函數的開銷 –

0

最佳性能我

function addItem($str, $item) { 
    return ($str != '' ? $str.',' : '').$item; 
}