?
Solved

Looping Through 2D Array

Posted on 2008-10-16
2
Medium Priority
?
549 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
[X]
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
2 Comments
 
LVL 9

Accepted Solution

by:
Shahzad Fateh Ali earned 2000 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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
3 proven steps to speed up Magento powered sites. The article focus is on optimizing time to first byte (TTFB), full page caching and configuring server for optimal performance.
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
Suggested Courses

765 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