Jump to content

[SOLVED] Find the last 3 entries


Schlo_50

Recommended Posts

I have a list in a .DAT file which gets added to every so often. I'd like to be able to print out the last 3 rows of data but can't seem to be able to do it without printing the whole file or only the last entry.

 

Could somebody help please?

 

$lines = file("data/options.DAT");
	foreach ($lines as $line) { 
	$data[$key] = explode("|", $line);
	  
	  $name = trim($data[$key][0]);
	  $pid = trim($data[$key][1]);
          
          print "$name - $pid<br />";

}

 

Thanks in advance!

Link to comment
https://forums.phpfreaks.com/topic/107605-solved-find-the-last-3-entries/
Share on other sites

try

<?php
$lines = file("data/options.DAT");
$K=0;
$last = count($lines) - 3;
	foreach ($lines as $line) { 
$K++;		
$data[$key] = explode("|", $line);
	  
	  $name = trim($data[$key][0]);
	  $pid = trim($data[$key][1]);
          
          if($K >= $last) print "$name - $pid<br />";

}
?>

For optimisation, I'd put the

if($K >= $last)

before the explode

 

No point exploding it if you aren't going to use it

 

<?php
$lines = file("data/options.DAT");
$K=0;
$last = count($lines) - 3;
    foreach ($lines as $line)
    { 
        $K++;
        if($K >= $last)
        {
            $data[$key] = explode("|", $line);
  
            $name = trim($data[$key][0]);
            $pid = trim($data[$key][1]);

            print "$name - $pid<br />";
        }//if
    }//foreach
?>

 

Saves three function calls and several references if it's no the last one. Your parse time will thank you if you ever get a very full .dat file

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.