【发布时间】:2021-11-16 17:50:19
【问题描述】:
我有一个 HTML 表格,其中有一些列。每列都显示了自己的价值。但是在表格的一个单元格中,我想显示用逗号分隔的整个项目名称数组。我希望表格单元格显示如下:
| User ID | Item Name |
|---|---|
| 1 | name1, name2, name3,.... |
$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);
它正确地获取了数组,因为当我尝试在 HTML 表之外回显 $allitemnames 时,它会打印整个数组。但是当我尝试在 HTML 表格单元格中打印它时出现了主要问题。我使用以下代码打印它:
echo"<tr style='color:white; background-color:#262626'>
<td><center>".$userid."</center></td>
<td><center>".$itemsarrayresult."</center></td>
</tr>";
此代码确实在单个单元格中打印多个名称,但输出根本不是我想要的。它只打印 "Array, Array, Array...."
首先它多次显示此警告消息并显示-
警告:第 62 行 C:\xampp\htdocs\Project\pendingpayments.php 中的数组到字符串转换
其次,表格如下所示:
| User ID | Item Name |
|---|---|
| 1 | Array, Array, Array,.... |
我在网上看过,但我遇到的每个论坛都有人试图循环并打印每 td 1 个值,而不是一个 td 中的所有值p>
【问题讨论】:
-
替换 $allitemnames[]=array('item_name'=> $x['item_name']); by $allitemnames[]=$x['item_name'];
-
您尝试过什么解决问题的方法?你被困在哪里了?
$allitemnames在我看来不像是字符串数组 -
在
$allitemnames末尾包含[]会自动将右侧表达式的结果推送到$allitemnames数组的末尾。为什么选择将右侧表达式的结果包装在array()中,从而创建一个单项数组,然后将其推入更大的$allitemnames数组?这似乎与您在这里的意图不同。