你如何在php中解析一个行数组

时间:2013-06-25 17:35:53

标签: php

我的行数组包含这样的内容:

 5   1   0   49972729    1813694     7   218     0     0     0      0   747  16811 13911  1  1 96  1  0.53   3.3 12:51:44
 6   1   0   49976522    1806247     3   203     0     0     0      0   613  41885 13113  3  2 95  1  0.86   5.4 12:52:14
  kthr            memory                         page                       faults                 cpu             time
---------- --------------------- ------------------------------------ ------------------ ----------------------- --------
 r   b   p        avm        fre    fi    fo    pi    po    fr     sr    in     sy    cs us sy id wa    pc    ec hr mi se
 8   1   0   49979036    1800213     1   190     0     0     0      0   650  54141 14509  2  2 95  1  0.80   5.0 12:52:44
 6   1   0   49981360    1807204     2   235     0     0     0      0   641  31630 18005  2  1 96  1  0.70   4.4 12:53:14

我想通过每一行以及以数字开头的每一行推送到一个ne数组。

到目前为止,我有这个:

{for ($i=0; $i<sizeof($line); $i++)
if(preg_match("^[0-9]", $line[i]) 
  array_push($line[$i], $new_line);

}

我收到此错误:

Parse error: syntax error, unexpected T_STRING in C:\PHP\cpu.php on line 20

我是非常新的PHP,非常感谢任何见解。

2 个答案:

答案 0 :(得分:1)

$rawLines = explode("\n", $content);
$lines = array();
foreach($rawLines as $rawLine){
    $rawLine = trim($rawLine);
    $parts = explode(" ", $rawLine); //maybe explode("\t", $rawLine);
    $parts[0] = trim($parts[0]);
    if( !ctype_digit($parts[0]) ){
        continue;
    }
    $lines[] = $parts;
}

答案 1 :(得分:0)

修复脚本的语法错误(例如,缺少))时,您需要使用正则表达式的分隔符:

if(preg_match("/^[0-9]/", $line[$i]))
               ^ here ^