【问题标题】:PHP - Pars Excel and explode a string by commasPHP - 解析 Excel 并用逗号分解字符串
【发布时间】:2016-12-05 20:59:23
【问题描述】:

我正在解析PHPExcel 的 Excel 文件。 Excel文件有A和B两列。如下:

________________________
|     A     |     B    |
________________________
| 987654321 | 55,12,11 |
| 789456123 |   1,2,3  |
| 998877665 | 10,11,12 |
| 112233345 |     8    |
________________________

$array1的PHPExcel输出如下:

Array
(
    [0] => "987654321","55,12,11"
    [1] => "789456123","1,2,3"
    [2] => "998877665","10,11,12"
    [3] => "112233345","8"
)

我用这段代码来解析$array1

$res = array();
foreach ($array1 as $key => $value)
{
   if ($arr != '')
   {
      $res[$key] = explode(",", str_replace('"', '', $value));
   }
}

我想得到这个结果:

Array
(
    [0] => Array
        (
            [0] => 987654321
            [1] => 55,12,11
        )

    [1] => Array
        (
            [0] => 789456123
            [1] => 1,2,3
        )
) //etc...

但是我得到了:

Array
(
    [0] => Array
        (
            [0] => 987654321
            [1] => 55
            [2] => 12
            [3] => 11
        )

    [1] => Array
        (
            [0] => 789456123
            [1] => 1
            [2] => 2
            [3] => 3
        )
) //etc..

我怎样才能得出结论?

【问题讨论】:

  • ...如果你不想爆炸$value,为什么要使用explode()
  • @Chris $value 有两个部分。我只想第一部分和第二部分分开。

标签: php regex excel parsing split


【解决方案1】:

将其视为 CSV,因为它是来自 Excel 的方式:

foreach($array1 as $key => $value) {
    $res[$key] = str_getcsv($value);
}

【讨论】:

    【解决方案2】:

    你可以使用:

    $res[$key] = explode('","', trim($value, '"'));
    

    请注意,一旦您尝试分隔字符串而不是整数,解析这样的逗号分隔部分就会失败。

    【讨论】:

      猜你喜欢
      • 2011-02-20
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多