Php 如何自动回显所有列值

Php 如何自动回显所有列值,php,Php,例如,我有一个属性表,我可以添加无限的属性。我在添加新列时使用altertable,在插入属性值时使用UPDATE。所有这些列都必须显示在表中。但是,我在显示新添加的列值时遇到了困难 下面是静态列值回显的外观: public function showAllUsers(){ $x = $this->getAllUsers(); foreach ($x as $data) { echo '<tr>'; echo '<th>'

例如,我有一个
属性表
,我可以添加无限的属性。我在添加新列时使用
altertable
,在插入属性值时使用
UPDATE
。所有这些列都必须显示在表中。但是,我在显示新添加的列值时遇到了困难

下面是静态列值回显的外观:

public function showAllUsers(){
    $x = $this->getAllUsers();
    foreach ($x as $data) {
      echo '<tr>';
        echo '<th>'. $data['id'].'</th>';
        echo '<td>'.$data['user'].'</td>';
        echo '<td>'.$data['email'].'</td>';
        echo '<td>'.$data['age'].'</td>';
      echo '</tr>';
    }
  } 
公共函数showAllUsers(){
$x=$this->getAllUsers();
foreach($x作为$data){
回声';
回显'.$data['id'].';
回显'.$data['user'].';
回显'.$data['email'].';
回显'.$data['age'].';
回声';
}
} 
它回显我指定的数据库的值。但是我需要一个循环来回送任何新增加的值,这样上面的静态回送方法就不起作用了

这就是我到目前为止的想法:

public function showAllUsers(){
    $x = $this->getAllUsers();
    foreach ($x as $data) {

      echo '<tr>';
        print_r( '<th>'. $data.'</th>');
      echo '</tr>';
    }
  }
公共函数showAllUsers(){
$x=$this->getAllUsers();
foreach($x作为$data){
回声';
打印(“.$data”);
回声';
}
}
它只显示了一个
注意:数组到字符串的转换
,并回显一个值为0的标记。如何回显一行中的所有内容?

试试以下方法:

public function showAllUsers()
{
    $x = $this->getAllUsers();
    echo '<tr>';
    foreach (array_keys($x[0]) as $field) {
        echo '<th>'. $field.'</th>';
    }
    echo '</tr>';
    foreach ($x as $data) {
        echo '<tr>';
        foreach ($data as $val) {
            echo '<td>'. $val.'</td>';
        }
        echo '</tr>';
    }
} 
公共函数showAllUsers()
{
$x=$this->getAllUsers();
回声';
foreach(数组_键($x[0])作为$field){
回显“.$field.”;
}
回声';
foreach($x作为$data){
回声';
foreach($val形式的数据){
回显“.$val.”;
}
回声';
}
} 

您可以使用html标记内爆$data数组。
内爆将获取所有数组值,并使用“胶水”将它们连接起来,使其成为字符串

public function showAllUsers(){
    $x = $this->getAllUsers();
    foreach($x as $data){
        echo "<tr>";
        echo "<th>" . implode("</th><th>", $data) . "</th>";
        echo "</tr>";
    }
} 
公共函数showAllUsers(){
$x=$this->getAllUsers();
foreach($x作为$data){
回声“;
echo“”。内爆(“,$data”);
回声“;
}
} 

Mobile在这里,所以不要判断我的格式。使用foreach($x as$k=>$v)和echo bothstill执行循环,注意:数组到字符串的转换很抱歉。您仍然需要foreach来循环数据。我会编辑答案是的,我自己注意到了,但无论如何,这是我一直在寻找的,但是我有两个连接的表,现在它从两个表的回声,但我需要从一个表。有没有一种方法我可以限制在那一种?我怎么知道?您的问题中没有包含任何关于联接表、要输出的值或数组外观的内容。根据你对问题的努力程度,你会得到答案。如果你的问题中没有包含所有必要的事实,那么不要认为我们可以读懂你的想法并为你解决它。好吧,好吧。我只是在第一次做这个的时候做这个。我自己会找到答案的。TY虽然这可以回答问题,但请添加一些说明,说明它是如何解决问题的。它有助于未来的读者。