【问题标题】:PHP converting Strings to Arrays back to StringsPHP将字符串转换为数组回字符串
【发布时间】:2013-05-12 19:51:56
【问题描述】:

我正在从具有以下输出的查询中提取数据: 1 2 3 5

我将它转换成这样的数组: $string = explode("\n", $result);

我知道有一个显示以下内容的数组: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 5 )

现在我正在尝试将该数组放回具有 | 的单个字符串中。分隔符

    $test = "";    
    foreach($string as $key)
    {
    $test .= $key." | ";
    }

但是,我得到了测试的输出:

     | 5 |

可以解释为什么它没有显示我期望它显示的内容以及如何用 | 生成单个字符串的另一种方式分隔符?

谢谢

【问题讨论】:

  • 非规范化数据库 // SQL 连接气味。
  • implode() 是你想要的;它完全符合您的要求。如果您没有看到,那么您的阵列中还有其他一些您没有告诉我们的事情。

标签: php mysql arrays string


【解决方案1】:

试试这个:

implode("|", $string)

【讨论】:

  • 你的数组的第一个元素必须是一个空字符串,或者一个空格什么的。 print_r($string) 显示什么?
  • 只需在" | " 中添加空格,然后使用trim() 取消前导和尾随空格。
【解决方案2】:

$string = implode(" | ", $result);

【讨论】:

    【解决方案3】:

    我认为implode 会是您正在寻找的。​​p>

    另外,我不确定为什么您的代码无法正常工作。在 ideone.com 上查看此示例:http://ideone.com/rH3qbr。我复制了您的代码,我认为它似乎可以正常工作,正如您所期望的那样。

    <?php
    $result = '1 2 3 4 5';
    $string = explode(" ", $result);
    $test = "";
    foreach($string as $key) {
        $test .= $key." | ";
    }
    echo $test; // outputs 1 | 2 | 3 | 4 | 5 | 
    ?>
    

    【讨论】:

    • bozdoz,不是空格,实际上是换行符“\n”请试一下。
    • 链接已更新,但结果相同。 @user1873432
    【解决方案4】:

    为此,您需要join函数: http://es1.php.net/join

    【讨论】:

      【解决方案5】:

      如果 $string 是数组,则可以使用 implode 将其转换为字符串 试试这个

      $new_string = implode("|", $string);
      

      【讨论】:

      • 现在我正在尝试将该数组放回具有 | 的单个字符串中。分隔符这是你问的,你提到了分隔符
      【解决方案6】:

      答案是explode("\r\n", $result) 但感谢大家向我展示了内爆函数

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-18
        • 2018-01-29
        • 2013-08-12
        • 2021-12-27
        • 1970-01-01
        相关资源
        最近更新 更多