Php 显示序列化数组
我有一个数组正在通过如下表单收集:Php 显示序列化数组,php,sql,Php,Sql,我有一个数组正在通过如下表单收集: <select multiple="multiple" name="contractors[]" > 它以下面的格式将数组保存在DB中,但我无法正确显示它。当我拉动整个屏幕时,它显示: a:4:{i:0;s:28:Contractor1";i:1;s:15:"Contractor2";i:2;s:10:"Contractor3";} 如何使其以更可读的格式显示 $result = mysql_query("SELECT * FROM form_
<select multiple="multiple" name="contractors[]" >
它以下面的格式将数组保存在DB中,但我无法正确显示它。当我拉动整个屏幕时,它显示:
a:4:{i:0;s:28:Contractor1";i:1;s:15:"Contractor2";i:2;s:10:"Contractor3";}
如何使其以更可读的格式显示
$result = mysql_query("SELECT * FROM form_2 GROUP BY jobname");
echo "<table border='1'>
<tr>
<th><font size='1'>Job Name</th>
<th><font size='1'>Contractors</th>
<th><font size='1'>Notes</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td><font size='1'>" . $row['jobname'] . "</font></td>";
echo "<td><font size='1'>" . $row['contractors'] . "</font></td>";
echo "<td><font size='1'>" . $row['notes'] . "</font></td>";
echo "</tr>";
}
echo "</table>";
$result=mysql\u查询(“按作业名从表单2组中选择*);
回声“
职务名称
承包商
笔记
";
while($row=mysql\u fetch\u数组($result))
{
回声“;
回显“$row['jobname']”;
echo“$row['contractors]”;
回显“$row['notes']”;
回声“;
}
回声“;
使用取消序列化($serializedoptions)
将其转换回数组。如果您想查看它,请使用var\u dump($unserialized)
必须取消序列化。在处理数据之前,只需对数据使用取消序列化
功能即可。在您的情况下,将返回一个数组
如果您找到支持PHP的代码,其他语言也可以取消序列化PHPserialize()
。例如,下面是JavaScript的一个示例:
编辑:
在更新添加的代码时,可以在取消序列化该值后将其显示为任何其他PHP变量
<?php
while ($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td><font size='1'>" . $row['jobname'] . "</font></td>";
echo "<td><font size='1'>";
$contractors = unserialize($row['contractors']);
foreach ($contractors as $contractor)
echo htmlspecialchars($contractor).'<br/>';
echo "</font></td>";
echo "<td><font size='1'>" . $row['notes'] . "</font></td>";
echo "</tr>";
}
?>
在未序列化的阵列上使用打印
:
print_r(unserialize($serializedArray));
您可以使用unserialize命令。然后,可以使用var_dump()或print_r()回送它
在上面的HTML表中,您必须进一步细分$row['contractors']的结果
首先,你要对这个值进行非序列化,比如说
$contractors=取消序列化($row['contractors'])
然后,您可以遍历$contractors的新数组,并在每个数组后面回显一个
,所有这些都在同一个TD中
实际上,我无法取消序列化上述序列化数据,因此我无法为您编写循环。我已对问题进行了编辑,以获得更详细的信息。如何取消消毒?我添加了一个代码示例。提示:请务必使用htmlspecialchars()
来转义您的HTML。非常感谢您的帮助,效果非常好!谢谢你给我额外的小费。
<?php
while ($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td><font size='1'>" . $row['jobname'] . "</font></td>";
echo "<td><font size='1'>";
$contractors = unserialize($row['contractors']);
foreach ($contractors as $contractor)
echo htmlspecialchars($contractor).'<br/>';
echo "</font></td>";
echo "<td><font size='1'>" . $row['notes'] . "</font></td>";
echo "</tr>";
}
?>
print_r(unserialize($serializedArray));