落書きノート

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

個人的なメモ PHP extractとcompactを使う

extractで配列をプレフィックス付きの変数に変換し、compactで再度配列に変換します。練習ですね。

<html>
<head>
  <title>compact</title>
</head>
<body>
  <?php
  $hon = array("PHP","VBA","Visual BASIC","C言語",
  "FORTRAN","COBOL","PASCAL","PL1","Visual C#","Visual C++");
  extract($hon,EXTR_PREFIX_ALL,"h");
   ?>

   <table border="2">
     <tr>
       <th>書名</th>
     </tr>
     <?php
      for($i = 0; $i < count($hon); $i++){
        print "<tr><td>${'h_' . $i}</td></tr>";
      }
      ?>
   </table>

   <table border="2">
     <tr>
       <th>番号</th>
       <th>書名</th>
     </tr>
     <?php
     $isbn = compact("h_0","h_1","h_2","h_3","h_4","h_5",
     "h_6","h_7","h_8","h_9");

     foreach($isbn as $key => $value){
       print "<tr><td>{$key}</td><td>{$value}</td></tr>";
     }
      ?>
   </table>
</body>
</html>

連番の変数なので、他の方法もありますが、通常はcompactを使うと覚えておけば良いと思います。