将字符串数组拆分为一个或多个空格[重复]

问题描述 投票:0回答:3

这里的目标是从日志文件中获取文本,纯文本由回车符分隔,每行由不同数量的空格分隔。

将其放入多维空间很容易,但消除空白却不容易。我想有很多混乱的方法可以解决这个问题,但这不是 array_filter() 的原因之一吗?

$alarms = array(
    "1530     1545     Place_4     Fault_1",
    "1617     1622     Place_1     Fault_2",
    "1634     1640     Place_2     Fault_1"
);

foreach ($alarms as $data) {
    $subArr = explode(" ", $data);  
    
    array_filter($subArr);

    print_r($subArr);
    echo "<br /><br />";
}

输出:

Array ( [0] => 1530 [1] => [2] => [3] => [4] => [5] => 1545 [6] => [7] => [8] => [9] => [10] => Place_4 [11] => [12] => [13] => [14] => [15] => Fault_1 ) 

Array ( [0] => 1617 [1] => [2] => [3] => [4] => [5] => 1622 [6] => [7] => [8] => [9] => [10] => Place_1 [11] => [12] => [13] => [14] => [15] => Fault_2 ) 

Array ( [0] => 1634 [1] => [2] => [3] => [4] => [5] => 1640 [6] => [7] => [8] => [9] => [10] => Place_2 [11] => [12] => [13] => [14] => [15] => Fault_1 ) 

希望是:

Array ( [0] => 1530 [1] => 1545 [2] => Place_4 [3] => Fault_1 ) 

Array ( [0] => 1617 [1] => 1622 [2] => Place_1 [3] => Fault_2 ) 

Array ( [0] => 1634 [1] => 1640 [2] => Place_2 [3] => Fault_1 )

不知道出了什么问题。

php arrays split
3个回答
9
投票

从手册中,array_filter

返回值: 返回过滤后的数组。

强调回报。目前您忽略返回值。


0
投票

而不是

explode(" ",$something)
,试试这个:

$parts = preg_split("/ +/",$something);

这将分割成可变数量的空格。


0
投票

更新代码

$alarms = array(
    "1530     1545     Place_4     Fault_1",
    "1617     1622     Place_1     Fault_2",
    "1634     1640     Place_2     Fault_1"
);

foreach ($alarms as $data) {
    $subArr = explode(" ", $data);  

    $subArr = array_filter($subArr);

    print_r($subArr);
    echo "<br /><br />";
}
© www.soinside.com 2019 - 2024. All rights reserved.