【问题标题】:Explode string by one or more spaces and new lines用一个或多个空格和换行来分解字符串
【发布时间】:2015-05-23 13:52:11
【问题描述】:

如何将字符串分解为一个或多个空格或制表符?

例子:

A      B      C 
D      E      F
G      H      I
J      K      L
M      N      O

我已使用此代码成功标记了空格和制表符:

$parts = preg_split('/\s+/', $str);

但是当有新行时问题就出现了。

我想把它变成一个数组,这样我也可以运行 mysqlquery。

【问题讨论】:

  • 你需要什么输出?
  • 问题出在哪里?您当前的输出是什么?您期望什么?
  • 你能提供更多细节吗?所以你有一个像"A B\tC\nD" 这样的字符串,你想得到数组"A", "B", "C", "D"
  • 换行有什么问题?您当前的正则表达式按换行符拆分。
  • 您的代码对我有用:"A B\tC\nD" 已正确拆分。

标签: php regex explode


【解决方案1】:

如果要获取字符矩阵,先用换行符分割:

<?php
$str = "A B\tC\nD E\tF";
$parts = preg_split("/\n+/", $str);
foreach($parts as $key => $line)
{
    $parts[$key] = preg_split("/\s+/", $line);
}

//output
$n = count($parts);
for ($i = 0; $i < $n; ++$i)
{
    $m = count($parts[$i]);
    for ($j = 0; $j < $m; ++$j)
    {
        print $parts[$i][$j]." ";
    }
    print "\n";
}

输出:

A B C 
D E F 

【讨论】:

  • 你在哪里创建数组?
  • @Bilal 调用 1-st preg_split 后创建 1-st 数组。第二个 - 在循环内。
  • 你能不能用循环而不是var_dump来显示数组,我会非常感谢你。
猜你喜欢
  • 2010-12-20
  • 1970-01-01
  • 1970-01-01
  • 2012-01-11
  • 2011-11-11
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多