【问题标题】:PHP - Add value to comma based string/arrayPHP - 为基于逗号的字符串/数组添加值
【发布时间】:2015-06-21 15:17:17
【问题描述】:

我将一些数据以逗号为基础的字符串存储在我的数据库中,如下所示:

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"]);

所以在上面的例子中,我从字符串中删除了 $userdata['id'](如果它存在的话)。

我的问题是..如何为基于逗号的字符串添加值?

【问题讨论】:

  • 也许只有我一个人,但我很惊讶你能想出removeFromString 的逻辑,却无法为addToString 这样做。
  • @light 我喜欢你的想法:-0
  • 这真的不是一个好主意......在数据库中存储逗号分隔的值总是会给人们带来很多问题
  • @MarkBaker 有什么问题?
  • 正是您遇到的问题:从集合中添加、修改和删除值.....更不用说在逗号分隔值的集合中搜索具有特定值的记录了该列(查找用户 3 订阅的所有记录)

标签: php arrays explode implode


【解决方案1】:

对我来说最好的表现

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

【讨论】:

    【解决方案2】:

    您可以使用$array[] = $var; 简单地做:

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

    【讨论】:

      【解决方案3】:
      function addToString($str, $item) {
          $parts = explode(',', $str);
          array_push($parts, $str);
          return implode(',', $parts);
      }
      $newString = addToString($existArr, $userdata["id"]);
      

      【讨论】:

      • 函数名应该是addToString
      • 酷,从我提出的版本来看,只需要做一个小改动
      • 注意:如果您使用array_push() 向数组中添加一个元素,最好使用$array[] =,因为这样就没有调用函数的开销
      猜你喜欢
      • 2023-03-14
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      相关资源
      最近更新 更多