Jump to content

Reading rows of array from text file?


jch02140

Recommended Posts

I am trying to print out rows of images and pieces them to form a bigger map  but having a little trouble printing out correctly.

 

I am doing the following...

 

A numbered text file with rows of numbers like these:

 

33.txt

48,48,49,49,48,47,48,49,48,50,50,48,50,49,48,49,49,49
49,11,4,8,50,11,4,4,8,48,11,4,4,8,48,11,8,50
...

 

The number represent different area and the number in the text file represent each individual pieces of that particular area. the number of rows and columns are arbitrary.

 

 

 

Example: 33_8.gif33_7.gif

 

Here is my code at the moment but there is something wrong in it as I can't seems to correctly print everything out...

<?php 
$file = file_get_contents("33.txt"); // can be any numbered text files
$entries = explode("\n", $file);
echo "Entries <br /><hr />";

for($i=0;$i < sizeof($entries);$i++){
	for($j=0;$j < sizeof($entries);$j++){
		$data = explode(",", $entries[$j]);	
  		echo "<td align=\"center\" background=\"test/33_";
  		echo $data[$j];
		echo ".gif\" width=\"65\" height=\"65\">
            	<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"65\" height=\"65\">
            		<tbody><tr>
                		<td>
                			<center></center>
                    	</td>
                	</tr></tbody>
            	</table>
            	</td>";
	}
}
?>

Link to comment
Share on other sites

First off, let me add some suggestions on coding style:

 

You create an array using explode(); and then loop through the results using

for($i=0;$i < sizeof($entries);$i++){

 

You should use a foreach() loop for arrays. In the loop above the function sizeof() is being executed on each iteration of the loop - very inefficient. If you do need to perform a loop on a static value - define that value beforehand. The only reason to have a loop like that is if the array $entries would change length during the loop.

 

Second, instead of using file_get_contents() and exploding the contents using "\n" use file() instead which reads the file as an array to start with.

 

Anyway, give this a try:

//Read file into an array of lines
$file = file("33.txt");

$tableHTML = ='';
foreach($file as $line)
{
    $tableHTML .= "<tr>\n";
    $numbers = explode(',', $line);
    foreach($numbers as $num)
    {
        $tableHTML .= "<td align=\"center\" background=\"test/33_{$num}.gif\" width=\"65\" height=\"65\"> </td>\n";
    }
    $tableHTML .= "</tr>\n";
}

echo "Entries <br /><hr />";
echo "<table>\n";
echo $table;
echo "</table>\n";

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.