2015-06-21 62 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; 
}