Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Looping Through 2D Array

Posted on 2008-10-16
2
545 Views
Last Modified: 2013-12-13
The below is my code.

What I need to do is loop though each value of the array, and run a test against that value of the array, for example if ($checked[0][0] == check) then do something... my problem is in how to handle the loop.

1. I need to step through a 2D array.. so the values are like $checked[0][0] through $checked[9][9] I'm not sure a for each will do this...  

2. Secondly as I go through each loop I need to make sure the cell of the array that I am testing is increasing as I go up... so the first time through  I am testing $checked[0][0] the second $checked[0][1], ect until 9,9

3. I will sometimes be changing the value of the current array cell that I am testing for example if $checked[0][0] == check and $checked[0][1] == checked { $checked[0][0] = unchecked } but I need to store all the changes and not pass them to the revised grid until after all the current cells have been tested.

Please help...
<?
if (isset($_POST['submit'])) {
  // $_POST['cb'] contains the array with selected checkboxes.
  $checked = $_POST['cb'];
  	foreach ($checked as $loop) {if ($checked[0][0] == check) {
  		echo "test";
  		}}
  echo "<pre>";
  print_r($checked);
  echo "</pre>";
}
?>
<form method='post'>
<?
 
for ($y = 0; $y < 9; $y++) {
  for ($x = 0; $x < 9; $x++) {
    echo "<input type='checkbox' name='cb[" . $y . "][" . $x. "]' value='check' ";
    if (isset($checked[$y][$x])) {
      echo "checked ";
    }
    echo "/>\n";
  }
  echo "<br />";
}
echo "<input type='submit' action='".$_SERVER['PHP_SELF']."' name='submit'>\n";
?>
 
<input type="submit" name="submit" />
</form>

Open in new window

0
Comment
Question by:cstormer
2 Comments
 
LVL 9

Accepted Solution

by:
Shahzad Fateh Ali earned 500 total points
ID: 22737978
Hi,

Try this.

<?
$max_rows = 9;
$max_cols = 9;
 
 
if (isset($_POST['submit'])) {
  // $_POST['cb'] contains the array with selected checkboxes.
  $checked = $_POST['cb'];
	for ($y = 0; $y < $max_rows; $y++) {
		  for ($x = 0; $x < $max_cols; $x++) {
				
				// you code for modification here
				echo ($y+1).",".($x+1)." is ";
				echo ($checked[$y][$x] === 'check')?"checked<br>":"unchecked<br>";
				
				}
		  }
	}
 
?>
<form method='post'>
<?
 
for ($y = 0; $y < $max_rows; $y++) {
  for ($x = 0; $x < $max_cols; $x++) {
    echo "<input type='checkbox' name='cb[" . $y . "][" . $x. "]' value='check' ";
    if (isset($checked[$y][$x])) {
      echo "checked ";
    }
    echo "/>\n";
  }
  echo "<br />";
}
?>
 
<input type="submit" name="submit" />
</form>

Open in new window

0
 

Author Closing Comment

by:cstormer
ID: 31507034
Perfect
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Popularity Can Be Measured Sometimes we deal with questions of popularity, and we need a way to collect opinions from our clients.  This article shows a simple teaching example of how we might elect a favorite color by letting our clients vote for …
Generating table dynamically is the most common issue faced by php developers.... So it seems there is a need of an article that explains the basic concept of generating tables dynamically. It just requires a basic knowledge of html and little maths…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question