落書きノート

ふと自分が気になった事を書いてます

PHP arrayを使用した多次元配列

arrayを使って多次元配列を作り、それをforなどの繰り返し文で取り出して表に表示するというものです。自分で書いたのはこんな感じです。

<html>
<head>
  <title>2次元配列</title>
</head>
<body>
<?php
$test = array(
  "山田" => array(
    80,
    90,
  ),
  "倉敷" => array(
    85,
    95,
  ),
  "岡山" => array(
    70,
    100,
  ),
);
 ?>

 <table border="2">
   <tr>
     <th>氏名</th>
     <th>国語</th>
     <th>数学</th>
   </tr>
   <?php

   foreach($test as $key1 => $value1){
     print "<tr>";
     print "<td>{$key1}</td>";
     foreach($value1 as $key2 => $value2){
       print "<td>{$value2}</td>";
     }
     print "</tr>";
   }
    ?>
 </table>
</body>
</html>

一方、答えはこんな感じです。

<html>
<head>
  <title>2次元配列</title>
</head>
<body>
<?php
$test = array(
  array("山田", 80, 90),
  array("倉敷", 85, 95),
  array("岡山", 70, 100)
);
 ?>

 <table border="2">
   <tr>
     <th>氏名</th>
     <th>国語</th>
     <th>数学</th>
   </tr>
   <?php
   for($i = 0; $i < count($test); $i++){
     print "<tr>";
     for($j = 0; $j < count($test[0]); $j++){
       print "<td>{$test[$i][$j]}</td>";
     }
     print "</tr>";
   }
    ?>
 </table>
</body>
</html>

答えの方が素直ですかね…。自分で書いたのは純粋に連想配列として使用したいときに使えそうです。

20160201191249