首页 > 解决方案 > 如何在单个 HTML 单元格中打印整个 PHP 数组?

问题描述

我有一个 HTML 表,其中有一些列。每列都显示了自己的价值。但是在表格的一个单元格中,我想显示用逗号分隔的整个项目名称数组。我希望表格单元格显示如下:

用户身份 项目名
1 名字1,名字2,名字3,……

$allitemnames保存数组值,如 name1、name2、name3 等

这是我当前获取项目数组的代码:


$itemnames="SELECT item_name FROM orderhistory WHERE uid='$userid' AND payment_mode = 'Cash'";
$itemnamescon=$con->query($itemnames);
$allitemnames=array();
while($x = mysqli_fetch_assoc($itemnamescon))
{
     $allitemnames[]=array('item_name'=> $x['item_name']);
}
$itemsarrayresult = implode(", ", $allitemnames);

它正确地获取了数组,因为当我尝试$allitemnames在 HTML 表之外回显时,它会打印整个数组。但是当我尝试在 HTML 表格单元格中打印它时出现了主要问题。我使用以下代码打印它:

echo"<tr style='color:white; background-color:#262626'>
<td><center>".$userid."</center></td>
<td><center>".$itemsarrayresult."</center></td>
</tr>";

此代码确实在单个单元格中打印多个名称,但输出根本不是我想要的。它只打印“数组,数组,数组......”

首先,它多次显示此警告消息,并说-

警告:第 62 行 C:\xampp\htdocs\Project\pendingpayments.php 中的数组到字符串转换

其次,表格如下所示:

用户身份 项目名
1 数组,数组,数组,......

我在网上看过,但我遇到的每个论坛都有人试图循环并打印每t d 1 个值,而不是所有值都在一个td

标签: phphtmlarrays

解决方案


对此有几种不同的方法:

在 php 中:

while($x = mysqli_fetch_assoc($itemnamescon))
{
     $allitemnames[]=$x['item_name'];
}
$itemsarrayresult = implode(", ", $allitemnames);

在 MySQL 中:

SELECT GROUP_CONCAT(item_name) FROM orderhistory WHERE uid='$userid' AND payment_mode = 'Cash'"

推荐阅读