【问题标题】:Use of PHP explode() functionPHPexplode()函数的使用
【发布时间】:2012-10-19 15:46:04
【问题描述】:

我有一个问题,我想使用explode函数拆分一个字符串变量,但是有一个限制,想象下一个字符串变量具有下一个值:

$data = "3, 18, 'My name is john, i like to play piano'";

使用explode函数:explode(",", $data),输出将是:

array(
       [0] => 3,
       [1] => 18,
       [2] => 'My name is john,
       [3] => i like to play piano'
      );

我的目标是用逗号分隔变量 $data ,不包括“ ”之间的那些。

例如array( [0] => 3, [1] => 18, [2] => 'My name is john, i like to play piano' );

如果有人能告诉我这样做的方法,我将不胜感激。

【问题讨论】:

  • 如果你的数据总是有相同的结构:explode(",", $data, 3);否则 str_getcsv()

标签: php explode


【解决方案1】:

这看起来很像 CSV 数据。你可以使用str_getcsv来解析这个。

var_dump(str_getcsv("3, 18, 'My name is john, i like to play piano'", ',', "'"));

应该导致:

array(3) {
  [0] =>
  string(1) "3"
  [1] =>
  string(3) " 18"
  [2] =>
  string(12) "My name is john, i like to play piano"
}

您可能还想将trim 应用到每个数组元素,方法是使用array_map

$string = "3, 18, 'My name is john, i like to play piano'";
var_dump(array_map('trim', str_getcsv($string, ',', "'")));

【讨论】:

    【解决方案2】:

    使用:str_getcsv

    // set the delimiter with ',', and set enclosure with single quote
    $arr = str_getcsv ($data, ',', "'");
    

    【讨论】:

      【解决方案3】:

      您可以将str_getcsv() 函数用作:

      $data = "3, 18, 'My name is john, i like to play piano'";
      $pieces = str_getcsv($data, ',', "'");
      

      函数的第一个参数是要拆分的字符串。

      第二个参数是你需要分割的分隔符。

      第三个参数是单个字符,当在第一个参数中用作一对(未转义)时,将被视为一个字段,有效地忽略这对之间的分隔符。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-16
        • 1970-01-01
        • 2016-04-18
        • 2019-09-07
        • 1970-01-01
        相关资源
        最近更新 更多