关于我的问题: Displaying Serialized Array PHP MYSQL

我在MySQL中存储了一个序列化的array.我正在取消序列化,然后使用下面的代码显示在表中.代码运行良好,但每行中的值都被合并.假设第一行具有值3,第二行具有值4,然后第一行显示3,这是好的,但是第二行显示3,4,并且类似地,第一行的值与其他行值合并. 请协助.

谢谢

Code:

$abc='';
foreach($result as $row)
  {
  $fine_types = unserialize($row['fine_type']);
  echo "<td>";
    foreach ($fine_types as $fine_type) {
            $abc .="<div dir='rtl' lang='ar' class='fntype'> ".$fine_type.'</div>';
        //$r=implode(',')
    }
    echo "</td>";
  

 `$output .= '
    <tr>
            <td style="text-align:right;">' . $abc . '</td></tr>';
}
echo $output;`

Example of A Generated serialized String

A:3:{i:0;s:177:66-未在适合每种类型的合适温度下储存和保存干燥、冷藏和冷冻食品";i:1;s:76:13-没有品牌广告牌;i:2;s:63:9-未经许可添加分支机构或仓库;}

Above String in Unserialized Format

66-未能在适合每种类型的温度下储存和保存干燥、冷冻和冷冻的食物,

13-缺乏商品名称广告牌,

未经许可添加分支机构或仓库

推荐答案

如果我现在理解正确的话,问题是当它处理后续行时,它不断地将前面$row个内容的输出添加到您的输出中,导致了一个问题,就像我们在这个现场演示中看到的:https://3v4l.org/eXXRX.

如果是,这是因为每次执行外部foreach时都不会重置$abc.您可以通过将$abc='';移入该循环来轻松解决此问题:

foreach($result as $row)
{
  $abc='';
  $fine_types = unserialize($row['fine_type']);
  
  echo "<td>";
  foreach ($fine_types as $fine_type) {
    $abc .="<div dir='rtl' lang='ar' class='fntype'> ".$fine_type.'</div>';
  }
  echo "</td>";

  $output .= '
    <tr>
            <td style="text-align:right;">' . $abc . '</td></tr>';
}
echo $output;

演示(更正):https://3v4l.org/vCQ5V

Php相关问答推荐

产品ACF值在WooCommerce我的账户订单的附加列中为空

如何使用ms graph php sdk v2列出具有已知路径的DriveItem的子项

将变体设置字段添加到WooCommerce中的特定变量产品

目标类[Set_Locale]不存在.拉威尔

如何在php网站代码中清理浏览器缓存

设置WordPress最近的帖子小部件按修改日期排序

PHP:为什么递归需要这么长时间

从字符串转换日期和/或时间时,Laravel转换失败

在带有livewire 3的laravel中使用规则方法时,无法进行实时验证

如何在codeigniter中将order_by RAND与下面的代码一起使用

无法在 WordPress 上获取 JSON 数据

AWS S3:当对象名称包含 % 时复制对象失败并出现错误 - 无效的复制源编码

PHP简单地将物品装在盒子里会导致未使用的空间,但还有剩余容量

Shopware 6 AuthControllerDecorator已弃用

从图像URL中获取文件扩展名?

如何获取用户之间的最新消息列表

如何使用相同的变量使函数参数对于数组和字符串都是可选的

遇到特定键时修改二维数组以创建嵌套数据集

如何在 Laravel 9 中判断异常是否可报告?

将参数传递给 laravel 9 工厂