【问题标题】:PHP join is adding a comma before the first valuePHP join 在第一个值之前添加一个逗号
【发布时间】:2014-05-15 19:57:23
【问题描述】:

我在PHP 中使用了一个join 语句,它在第一个值之前添加了一个逗号。我不知道为什么。

这里是代码

$columns = join(', ', $column_names). ' ';

这是结果

,value1, value2, value3

它是使用AJAX 发送的,下面是使用jQuery 在前端创建数组的方式。

$('#preview_button').click(function() {
    var rc_column_names = ['not', 'set'];
    if($('#rc_custom_columns').is(':checked')) {
        rc_column_names = [];
        $(".list2 li").each(function() {
            rc_column_names.push($(this).text());
         });
    }

    $.ajax({
        url:'core/functions/create_report_preview.php',
    type: 'post',
    data: { 'rc_column_names': rc_column_names }
    }).fail (function(data) {
        //code
    }).done(function(data) {
        //code
    });
});

同样,问题是。这个逗号是从哪里来的?为什么要在第一个值之前加上?

【问题讨论】:

  • join() 不是。逗号已经存在于第一个元素中。
  • var_dump($column_names)join() 只会插入新的分隔符 BETWEEN 元素已经存在。如果您在连接字符串的开头有一个逗号,那么您的数组中有一个 EMPTY 元素开始。例如您的 JS 代码搞砸了并创建了一个空元素。 PHP 正在做它被告知的事情。
  • 或者@MarcB 所说的:-)
  • @MarcB 这正是我的想法。

标签: php jquery sql


【解决方案1】:

您可能有一个空值作为您的第一个数组元素。在调用 join() 之前使用 array_filter() 从数组中删除空值。

【讨论】:

  • 多么漂亮的工具,我不知道它的存在。无知又是我的失败,=)。谢谢!
【解决方案2】:

如果它实际上是, value1, value2, value3(第一个逗号后有一个空格),那么 $column_names` 必须有一个空字符串作为第一个值。

否则,逗号来自其他代码。它可能是您的第一个值的一部分,也可能是其他代码中的拼写错误。尝试做一个var_dump($column_names)

【讨论】:

  • 谢谢杰西卡,我同意你的看法。我似乎无法在任何地方找到添加空字符串或空字符串的地方。我想我只是想证实我的怀疑。我会开始倾倒和回应事情,看看会发生什么。
  • 以后,您 SO之前进行 echo 和 var_dump 测试。 ;)
猜你喜欢
  • 1970-01-01
  • 2023-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多