【问题标题】:PHP function that convert 'a,b' to ' "a","b" ' [duplicate]将'a,b'转换为'“a”,“b”'的PHP函数[重复]
【发布时间】:2014-02-21 15:39:21
【问题描述】:

我有一个字符串值为'laptop,Bag' 的变量,我希望它看起来像' "laptop","Bag" '"laptop","Bag"。我怎么能做到这一点?是否有任何 php 函数可以完成这项工作?请帮忙。

【问题讨论】:

  • 你有没有尝试过,看起来很简单!
  • 是的,我已经尝试过使用 implode 函数,但我无法让它工作
  • 向我们展示您的尝试,然后我们可以帮助您解决错误。

标签: php


【解决方案1】:

这会奏效。首先,将字符串分解为一个数组。然后用语音标记将其内爆,并通过添加开始和结束语音标记来完成。

$string = "laptop,bag";
$explode = explode(",", $string);
$implode = '"'.implode('","', $explode).'"';

echo $implode;

Output: 
"laptop","bag"

【讨论】:

    【解决方案2】:

    这就是str_replace 的用途:

    $result = '"'.str_replace(',', '","', $str).'"';
    

    【讨论】:

    • 需要在字符串的开头和结尾添加"。
    • 我同意这将是创建字符串的更简单的方法。不需要爆炸或内爆任何东西,也不需要创建另一个函数。
    【解决方案3】:

    这很容易做到。

    $string = 'laptop,bag';
    $items = explode(',', $string);
    $newString = '"'.implode('","', $items).'"';
    

    这应该把'laptop,bag' 变成"laptop","bag"

    将它包装在一个函数中就像这样简单:

    function changeString($string) {
        $items = explode(',', $string);
        $newString = '"'.implode('","', $items).'"';
        return $newString;
    }
    

    【讨论】:

    • 打败你 ;) 哈哈
    • 是的,一模一样哈哈!我提供了我的功能! :)
    【解决方案4】:

    我认为你可以 explode 你的字符串作为数组并循环抛出它来创建你的新字符串

    function create_string($string)
    {
        $string_array = explode(",", $string);
        $new_string = '';
        foreach($string_array as $str)
        {
            $new_string .= '"'.$str.'",';
        }
        $new_string = substr($new_string,-1);
    
        return $new_string;
     }
    

    现在您只需将字符串传递给函数

    $string = 'laptop,Bag';
    echo create_string($string); 
    //output "laptop","Bag"
    

    【讨论】:

    • 这里可以使用 implode 而不是 foreach 循环。
    • 正确,我的第一个想法是循环,虽然内爆会更快
    【解决方案5】:

    对于您的具体示例,此代码可以解决问题:

    <?php
    $string = 'laptop,bag';
    $new_string = ' "' . str_replace(',', '","', $string) . '" ';
    // $new_string: "laptop","bag"
    ?>
    

    如果您在该列表中有更多项目,该代码也可以工作,只要它们是逗号分隔的。

    【讨论】:

      【解决方案6】:

      使用preg_replace():

      $input_lines="laptop,bag";
      echo preg_replace("/(\w+)/", '"$1"', $input_lines);
      

      输出:

      '"laptop","Bag"'
      

      【讨论】:

        【解决方案7】:

        我认为您可以在 php 中使用explode 将该字符串转换为数组来执行此操作。

        $tags  = "laptop,bag";
        $tagsArray = explode(",", $tags);
        echo $tagsArray[0]; // laptop
        echo $tagsArray[1]; // bag
        

        参考 http://us2.php.net/manual/en/function.explode.php

        相关的帖子看看也许可以解决你的问题。

        How can I split a comma delimited string into an array in PHP?

        【讨论】:

          猜你喜欢
          • 2012-11-12
          • 1970-01-01
          • 1970-01-01
          • 2020-07-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-30
          • 2018-09-14
          相关资源
          最近更新 更多