我该如何修复我的PHP数组?

时间:2018-08-20 04:27:53

标签: php arrays

所以我有一个循环,它从数据库中吐出每一行数据。输出如下所示

Array ( [0] => 1 [1] => 1 [2] => 1 [3] => Saratoga [4] => test [5] => 7-2 [6] 
=> Red [7] => Bob [8] => Jill ) 
Array ( [0] => 2 [1] => 1 [2] => 2 [3] => Saratoga [4] => test 2 [5] => 3-3 [6] 
 => White [7] => Bill [8] => Austin ) 
 Array ( [0] => 3 [1] => 1 [2] => 3 [3] => Saratoga [4] => test 3 [5] => 2-2 
 [6] => Blue [7] => Austin [8] => jill ) 

如何将其组合成一个数组?

下面是我如何为数组循环的代码

$sql = "SELECT * FROM `2018-08-20`";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$rn = 1;
// output data of each row
   $aa = 1;

while($row = $result->fetch_assoc()) {

       $a = array($aa,$row["RaceNumber"], $row["HorseNum"], $row["Track"], 
$row["HorseName"], $row["Odds"], $row["Color"], $row["JockeyName"], 
$row["TrainerName"] );

  for($x=0;$x < $a[1];$x++){
      $aa++;
  print_r($a);
 echo "<br/>";
    $rn++;

  }
}

  echo ' <button type="submit" name="submit"> Submit </button></form>';
echo "</table>";

} else {
echo "0 results";

}

3 个答案:

答案 0 :(得分:0)

如果只需要一个包含循环中已编码字段的数组,则应将其编码到查询中。我不确定您对数组中的$aa所做的操作,但是您在那里有它,所以我将它包含在最后一个示例中。

SQL方法:

注意:$aa将丢失。

$sql = "SELECT 

  `RaceNumber`,
  `HorseNum`,
  `Track`,
  `HorseName`,
  `Odds`,
  `Color`,
  `JockeyName`,
  `TrainerName`

 FROM `2018-08-20`";

$results = $conn->query($sql);

print_r($results);

您的当前设置

$sql = "SELECT * FROM `2018-08-20`";
$result = $conn->query($sql);
if ($result->num_rows > 0) {

  $rn = 1; //What are these for???
  $aa = 1;

  while($row = $result->fetch_assoc()) {

    $a[] = array(

            $aa, 
            $row["RaceNumber"],
            $row["HorseNum"],
            $row["Track"], 
            $row["HorseName"],
            $row["Odds"],
            $row["Color"],
            $row["JockeyName"], 
            $row["TrainerName"]

           );

  }

  print_r($a);

  echo ' <button type="submit" name="submit"> Submit </button></form>';
  echo "</table>";

} else {

echo "0 results";

}

答案 1 :(得分:0)

尝试一下。在下面的代码中,我们将所有数组存储在$all_data数组中。

$all_data = array();
while($row = $result->fetch_assoc()) {
    $a = array($row["RaceNumber"], $row["HorseNum"], $row["Track"], 
    $row["HorseName"], $row["Odds"], $row["Color"], $row["JockeyName"], 
    $row["TrainerName"] );

    $all_data[] = $a;
}
print_r($all_data);

答案 2 :(得分:0)

您也可以尝试

$all_data = array();
while($row = $result->fetch_assoc()) {
    $all_data[] = $row;
}

var_dump($all_data);

由于$ row将采用数组格式,因此您可以将其直接添加到数组中

您可以阅读更多有关 http://php.net/manual/en/mysqli-result.fetch-assoc.php