1

This is my code. I don't know why it is not working. I was trying to print my table with php for loop, but nothing shows up on the website.Nothing

This is the two-dimentional array that I was trying to print out.

 <!--Arrays of weapons-->
 <?php
 $weapons = array(
 array("M4A1",1,78906,"TUCKER, LISBETH","SPC"),
 array("M4A1",2,78915,"HATHAWAY, HANNAH","1LT"),
 array("M4A1",3,78933,"HARRIS, LEE","SFC"),
 array("M4A1",4,78934,"WELCH, BRAD","SSG"),
 array("M9",1,1167552,"BLAND, MARGARET","CPT"),
 array("M249",1,101032,"TYSON, MICHELLE","1SG"),
 array("M249",2,101038,"MEDINA, TOBIAS","SPC"),
 array("M240B",1,104104,"COSTA, JOSHUA","SSG"),
 array("M2A1",1,1863848,"GARCIA, RIGOBERTO","SSG"),
 array("MK-19",1,19369,"NEUPANE, KISHOR","SPC")
 );
 ?>

This is the code that I was trying to use to print out.

<!--Create the Weapons List Table-->
 <table border ="1">
 <tr>
  <th>Type</th>
  <th>Buttstock #</th>
  <th>Serial #</th>
  <th>Name</th>
  <th>Rank</th>
 </tr>
 <!--Put two-dimentinal arrays in the table-->
 <?php foreach ($row = 0; $row < 10, $row++) {?>
  <tr>
  <?php for ($col = 0; $col < 5, $col++) {?>
   <td><?php echo $weapons[$row][$col];?></td>
  <?php }?>
  </tr>
  <?php }?>
 </table>
0

2 Answers 2

2

You have to use foreach as foreach (array_expression as $value)

The foreach construct provides an easy way to iterate over arrays. foreach works only on arrays and objects, and will issue an error when you try to use it on a variable with a different data type or an uninitialized variable.

Like:

<?php
$weapons = array(
 array("Type 1",1,78906,"Apple","R1"),
 array("Type 2",2,78915,"Javascript","R4"),
 array("Type 3",3,78933,"Red","R6"),
 array("Type 4",4,78934,"Circle","R1"),
 array("Type 5",1,1167552,"Fried rice","R4"),
);
?>

<table border ="1">
     <tr>
      <th>Type</th>
      <th>Buttstock #</th>
      <th>Serial #</th>
      <th>Name</th>
      <th>Rank</th>
     </tr>
     <!--Put two-dimentinal arrays in the table-->
     <?php foreach ($weapons as $weapon) {?>
      <tr>
          <?php foreach ( $weapon as $val ) {?>
           <td><?php echo $val;?></td>
          <?php }?>
      </tr>
      <?php }?>
</table>

This will result to:

enter image description here

Doc: foreach

Sign up to request clarification or add additional context in comments.

1 Comment

@HoseokLee, Seems that you are trying to remove the sample data. I replaced it with some dummy data, but the edit history is still available though.
1

Enhancing Eddie's answer, using foreach as well,
note that you could visually simplify the code like that:

<!--Arrays of weapons-->
<?php
$weapons = array(
  array("Type 1",1,78906,"Apple","R1"),
  array("Type 2",2,78915,"Javascript","R4"),
  array("Type 3",3,78933,"Red","R6"),
  array("Type 4",4,78934,"Circle","R1"),
  array("Type 5",1,1167552,"Fried rice","R4"),
);
?>
<table border ="1">
 <tr>
  <th>Type</th>
  <th>Buttstock #</th>
  <th>Serial #</th>
  <th>Name</th>
  <th>Rank</th>
 </tr>
 <!--Put two-dimentinal arrays in the table-->
 <?php
  foreach ($weapons as $weapon) {
    echo '<tr>';
    foreach ( $weapon as $val ) {
        echo "<td>$val</td>";
    }
    echo '</tr>';
  } ?>
</table>

Why using this solution?
Because the multiple opening and closing of php tags can make the code hard to read.

Documentation about foreach: http://php.net/manual/en/control-structures.foreach.php

Hope it helps.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.