Php 当我试图从数据库中获取并显示逗号分隔的值时,Explode显示的是数组

Php 当我试图从数据库中获取并显示逗号分隔的值时,Explode显示的是数组,php,Php,我使用implode()函数和逗号分隔(如1,3)存储名称的ID。列名为diet_id(varchar),其值为1,3。 现在我想获取并显示这些ID及其名称,比如ID1是ABC,ID2是XYZ。我正在使用explode函数获取和显示,但它返回数组。 以下是我到目前为止所做的 吸引 <?php $ShowProducts = mysqli_query($con, "SELECT * FROM food WHERE merchant_id='$userId'"); whil

我使用implode()函数和逗号分隔(如1,3)存储名称的ID。列名为diet_id(varchar),其值为1,3。 现在我想获取并显示这些ID及其名称,比如ID1是ABC,ID2是XYZ。我正在使用explode函数获取和显示,但它返回数组。 以下是我到目前为止所做的

吸引

<?php
$ShowProducts = mysqli_query($con, "SELECT * FROM food WHERE merchant_id='$userId'");
while($row=mysqli_fetch_assoc($ShowProducts)){
// Getting Names from IDs
$Diet_query     = mysqli_query($con,"SELECT * FROM diets WHERE id=".$row['diet_id']);
$main_diet      = mysqli_fetch_assoc($Diet_query);
$ar = explode(' ',$main_diet); 
?>

现在展示

<td><?php echo $ar;?></td>

但是它返回数组

explode()
总是返回一个数组。在您的示例中,单个值为1和3(从
1,3
分解)。因此,数组将有两个字段。一个值为
1
,另一个值为
3

文本“Array”是PHP中数组的标准字符串表示形式。如果要单独打印这些值,可以使用它们的索引(从0开始):


还有许多其他方法可以显示数组数据,另请参见

旁注:在您的帖子中,您是按空格而不是按逗号分解值,因此,如果实际使用逗号存储值,您可能需要相应地更改对
explode()
函数的调用,如您所说:

$ar=explode(“”,$main_饮食);
应该是:

$ar=explode(“,”,$main_diet);

我用var_dump()检查了我的上述查询,它没有带来任何数据。当条目在表中仅为1时,如5,则它显示数据,但在3.5.2中,它显示为null。 将我的查询更改为此

$sql = "SELECT * FROM food";
$result = mysqli_query($con, $sql);
$row = mysqli_fetch_assoc($result);
$ids = $row["diet_id"];
$sql = "SELECT * FROM diets WHERE id IN ($ids)";
$result = mysqli_query($con, $sql);
while ($drow = mysqli_fetch_assoc($result))
{
$diet_name[] = $drow['diet_full_name'];
}
然后

<td><?php echo implode(", ", $diet_name);?></td>


然后它起作用了

如果用逗号存储它们,还应该用逗号分解:)
explode()
获取字符串并将其作为片段数组返回。你期待什么?