I have log file data(.txt) here
As you can see on log file that has Date
and Time
content.
And now I have PHP function to get the data from log file.
$fromDateTime = new DateTime('Wed, Sep 19 2018 08:00:00');
$toDateTime = new DateTime('Wed, Sep 19 2018 19:59:00');
$file = file_get_contents('Reject.txt');
$lines = explode("
", $file);
// counter
$rowsintimespan = 0;
// keys should correspond to columns
$keys = [
'Date',
'Time',
'Battery level',
'Piezo sound level',
'Left (Channel 3) light intensity',
'Right (Channel 1) light intensity'
];
$values = array_fill(0, count($keys), 0);
$values = array_combine($keys, $values);
// Do Line-By-Line starting by Line 16 (Array Index 15)
for ($i = 11; $i < count($lines); $i++) {
// if the file is "Tue, Sep 18<tab>2018<tab>23:59:53<tab>"
$dateobj = DateTime::createFromFormat("???,?M?d??Y?H:i:s+", $lines[$i]);
// check if date is in your Timespan
if ($dateobj < $toDateTime && $dateobj > $fromDateTime) {
$rowsintimespan++; // count if in timespan
// get line elements
$lineContent = explode("\t", $lines[$i]);
// loop through line elements and count them
$x = 0;
for ($j = 0; $j < count($keys); $j++) {
if (!isset($lineContent[$j])) {
continue;
}
// remember position of last not empty column
if (trim($lineContent[$j]) != '') {
$x = $j;
}
}
if ($x > 0) {
$values[$keys[$x]]++;
}
}
}
// Debug-Output
echo $rowsintimespan;
// Output every column
echo '<pre>';
print_r($values);
And now I don't want Date
and Time
including on counting. So I try to remove both, but the result of count is not in the correct keys
.
My question, is it possible to ignore both keys then the counting is keep correct?
Above image, I try to removed Date
and Time
.
The correct one should be, Battery level = 2
and Piezo sound level = 2
.