php:将数组的每个元素显示为字符串

php:将数组的每个元素显示为字符串,php,arrays,foreach,Php,Arrays,Foreach,大家好,这是我使用php的第一天。我想这对你来说很容易。有人能帮我将数组$result[]中的每个元素显示为$result\u device[]中的字符串吗 <?php $mysqli = new mysqli("localhost", "root", "password", "db"); $sql = "SELECT erker, brunnen, stehlampe, computer, mediacenter FROM devices";

大家好,这是我使用php的第一天。我想这对你来说很容易。有人能帮我将数组$result[]中的每个元素显示为$result\u device[]中的字符串吗

<?php
  $mysqli = new mysqli("localhost", "root", "password", "db");      

    $sql = "SELECT erker, brunnen, stehlampe, computer, mediacenter FROM 
    devices";
    if (!$result = $mysqli->query($sql)) {
        echo "Query: " . $sql . "\n";
        echo "Errno: " . $mysqli->errno . "\n";
        echo "Error: " . $mysqli->error . "\n";
        exit;
    }

  $result = $result->fetch_row();
  $i = 0;
  foreach ($result as list ($result_device)) {
    if ($result_device[i]==0){
      $result_device[i] = "ausgeschaltet";
      }
    elseif ($result_device[i]==1){
      $result_device[i] = "eingeschaltet";
      }
      $i++;

  }
  echo $result_device[0];
  echo $result_device[1];
  echo $result_device[2];
  echo $result_device[3];
  echo $result_device[4];


  $result->close();
  $mysqli->close();
  ?>


多谢各位

您需要改进代码,如下所示:-

<?php
$mysqli = new mysqli("localhost", "root", "password", "db");

if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$result_device = [];
if ($result = $mysqli->query("SELECT erker, brunnen, stehlampe, computer, mediacenter FROM devices")) {
    while ($row = $result->fetch_row()) {
       print_r($row); 
       // Based on oputput modify condition and assign values to $result_device
    }

    $result->close();
}

$mysqli->close();
?>

您需要改进代码,如下所示:-

<?php
$mysqli = new mysqli("localhost", "root", "password", "db");

if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$result_device = [];
if ($result = $mysqli->query("SELECT erker, brunnen, stehlampe, computer, mediacenter FROM devices")) {
    while ($row = $result->fetch_row()) {
       print_r($row); 
       // Based on oputput modify condition and assign values to $result_device
    }

    $result->close();
}

$mysqli->close();
?>


首先将结果打印在foreach的侧面。打印($result\u device)并检查数组并将数组添加到此处您使用的foreach循环仅在上面几行。看一下手册,我想你会把它整理好的。这似乎不对
$result=$result->fetch_row()
是否确实要重写对象?
i
不会使用声明的
$i
值。事实上,如果只是生成索引数组,则不需要使用计数器(
$i
)。您可以使用
$result\u device[]='whatever'将值推送到结果数组中
您阅读了哪些编码教程以获得此代码?我可以改写$result,然后我想我不需要另一个变量,或者?首先在foreach的侧面打印您的结果。打印($result\u device)并检查数组并将数组添加到此处您使用的foreach循环仅在上面几行。看一下手册,我想你会把它整理好的。这似乎不对
$result=$result->fetch_row()
是否确实要重写对象?
i
不会使用声明的
$i
值。事实上,如果只是生成索引数组,则不需要使用计数器(
$i
)。您可以使用
$result\u device[]='whatever'将值推送到结果数组中
您阅读了哪些编码教程来编写此代码?我可以改写$result,那么我想我不需要另一个变量了?好的,非常感谢!。我试着去理解,我从那里继续!我花了一些时间在它上面,但最终它起作用了。谢谢你的帮助help@KaiH. 很高兴能帮助你,你自己尝试了真的很好。这就是你学习的方式。好的,非常感谢!。我试着去理解,我从那里继续!我花了一些时间在它上面,但最终它起作用了。谢谢你的帮助help@KaiH. 很高兴能帮助你,你自己尝试过真的很好。这就是你学习的方式