【问题标题】:How to split text in array by comma if comma is in text value [duplicate]如果逗号在文本值中,如何用逗号分割数组中的文本[重复]
【发布时间】:2016-09-09 05:47:11
【问题描述】:

PHP

$str = '0, "一些, 文本", 0.23, 4';

如果分隔符 ( , ) 可能是值的一部分,如何将文本拆分为数组?

谢谢。

【问题讨论】:

  • 使用 $new_array = explode(',',$str); print_r($new_array);
  • 使用explode(",", $var);
  • 这不是一个选项。 $str “包含” 4 个值。爆炸产生 5 个值!
  • @AndrisBriedis 试试我的答案
  • 您的字符串看起来像逗号分隔值,也就是 CSV。你也许应该看看 PHP 提供的解析 CSV 的函数。

标签: php


【解决方案1】:

试试这个

$str = '0, "Some, text", 0.23, 4';
$new = str_getcsv($str, ",","",",");
echo "<pre>";
print_r($new);

输出

Array
(
    [0] => 0
    [1] => Some, text
    [2] => 0.23
    [3] => 4
)

有关str_getcsv的更多信息,请阅读http://php.net/manual/en/function.str-getcsv.php

【讨论】:

    【解决方案2】:

    如果你为此使用explode,第一印象是你确实会得到5个值而不是你想要的4个。

    您最好的选择是使用str_getcsv (link)。检查this thread

    【讨论】:

    • explode 我的朋友,不是implode
    • 我的错,已修复。早上来得太早了:)
    • 感谢 str_getcsv。这正是我所需要的。
    • 很高兴我能帮上忙 :)
    【解决方案3】:

    最简单的方法是使用explode:

    $text = "Some, Text";
    
    $parts = explode(", ", $text);
    $var1 = array_pop($parts);
    $var2 = implode(" ", $parts);
    
    echo "str1: $var1\n";
    echo "str2: $var2\n";
    

    将返回“str1: Text str2: Some”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-28
      • 2018-01-14
      • 2016-11-29
      • 2022-03-18
      • 1970-01-01
      • 1970-01-01
      • 2016-09-16
      • 1970-01-01
      相关资源
      最近更新 更多