검색 - php 배열 값 변경




PHP 배열 값 가져 오기 및 다른 열에 인쇄 (3)

이 시도

echo "<table>";
foreach($scores as $key=>$value)
{
     echo "<tr>";
     echo "<td>$key</td>";
     for($x=0; $x<count($value); $x++) 
     {
         echo "<td>".sprintf('%02d', $value[$x])."</td>";
     }
     echo "</tr>";
}
echo "</table>";

전체 코드보기의 예

    <?php
//Names
$names = array("Mike", "Kyle", "Johnny", "Will", "Vasques");

//scores values for each name
$scores = array(
    "Mike"    => array(04, 03, 00, '-', '-', '-', '-', '-', '-', 07, 04),
    "Kyle"    => array(07, 01, 00, 03, 04, 01, 00, 07, 03, 04, 04),
    "Johnny"  => array(07, 07, 00, 03, 00, 04, 00, 01, 01, 04, 03),
    "Will"    => array(03, 04, 00, 03, 04, 07, 00, 01, 00, 07, 04),
    "Vasques" => array(03, 01, 00, 03, 04, 07, 00, 01, 00, 07, 07)
);
echo "<table>";
foreach($scores as $key=>$value)
{
     echo "<tr>";
     echo "<td>$key</td>";
     for($x=0; $x<count($value); $x++) 
     {
          if (is_numeric($value[$x])) 
     {
        echo "<td>".sprintf('%02d', $value[$x])."</td>";
     }
     else
     {
         echo "<td>". $value[$x]."</td>";
     }
     }
     echo "</tr>";
}
echo "</table>";

산출

Mike    04  03  00  -   -   -   -   -   -   07  04
Kyle    07  01  00  03  04  01  00  07  03  04  04
Johnny  07  07  00  03  00  04  00  01  01  04  03
Will    03  04  00  03  04  07  00  01  00  07  04
Vasques 03  01  00  03  04  07  00  01  00  07  07

여기에 <table> 행에 5 개의 이름을 포함하는 루프가 있습니다. 이 table 은 첫 번째 열에 참가자 이름 행이 표시되고 다른 열에는 점수가 표시되어야하는 순위이어야합니다.

점수 번호를 추가하려는 빈 열의 경우 각 참가자의 array 을 만들어 <td> 반복합니다. array 에는 10 개의 숫자가 있으며 각 숫자는 각 빈 <td> 왼쪽에 표시되어야합니다.

//Names
$names = array("Mike", "Kyle", "Johnny", "Will", "Vasques");

//scores values for each name
$scores = array(
    "Mike"    => array(04, 03, 00, 07, 04, 07, 00, 01, 00, 07, 04),
    "Kyle"    => array(07, 01, 00, 03, 04, 01, 00, 07, 03, 04, 04),
    "Johnny"  => array(07, 07, 00, 03, 00, 04, 00, 01, 01, 04, 03),
    "Will"    => array(03, 04, 00, 03, 04, 07, 00, 01, 00, 07, 04),
    "Vasques" => array(03, 01, 00, 03, 04, 07, 00, 01, 00, 07, 07)
);

//start loop for rows
for($x=0; $x<count($names); $x++) {
  echo "<tr>";
  //column for the names
  echo "<td>$names[$x]</td>";
  //loop for columns where the score should be displayed
  for($td=2; $td<=10; $td++) {
    echo "<td></td>";
  }
  echo "</tr>";
}

다음과 같이 표시됩니다.

Mike   04  03  00  07  04  07  00  01  00  07  04
Kyle   07  01  00  03  04  01  00  07  03  04  04
Johnny 03  01  00  03  04  07  00  01  00  07  07

등등...


$names 배열은 필요 없으며, 첫 번째 레벨 배열 키로 출력 할 수 있습니다. 다음은 깨끗한 코드에서 숫자 for() 루프 대신 foreach() 를 사용하는 예입니다.

foreach($scores as $name => $values) {
    echo '<tr><td>' . $name . '</td>' . PHP_EOL;
    foreach($values as $val) {
      echo '<td>' . $val . '</td>' . PHP_EOL;
    }
    echo '</tr>' . PHP_EOL;
}

<?php
foreach($names as $names)
{
   echo "<tr>";
   echo "<td>$names</td>";
   foreach($scores[$names] as $nmscore)
   {
        echo "<td>$nmscore</td>";

   }
echo "</tr>";
}

?>





multiple-columns