我正在尝试拆分一个分隔的邮政编码字符串,而不是看起来像这样:
之前:
第1行:ST16,ST17,ST18,ST19,ST20
第2行:AT16,AT17,AT18,AT19,AT20
第3行:LL16,LL17,LL18,LL19,LL20
的后:
第1行:ST16
第2行:ST17
第3行:ST18
...等
每个邮政编码都有自己独立的行。我设法做到这一点,但是当我运行我的代码时,它似乎是按照它包含的元素数打印邮政编码数组。例如,如果阵列中有11个元素,它将打印[ST16,ST17,ST18,ST19,...] 11次。有谁知道为什么会这样?
if ($db_found) {
// Select all fields from bodyshops_master_network table
$SQL = "SELECT * FROM bodyshops_master_network";
$result = mysql_query($SQL);
while ( $db_field = mysql_fetch_assoc($result) ) {
// Splits the arrays
$row = explode(",", $db_field['postcodes_covered']);
foreach ($row as $value) {
print "<pre>";
echo implode("<br>", $row);
print "</pre>";
}
}
mysql_close($db_handle);
} else {
print "Database NOT Found ";
mysql_close($db_handle);
}
答案 0 :(得分:1)
你的foreach循环是多余的,应该只是:
$text = implode('<br />', $row);
echo "<pre>$text</pre>";
如果你坚持循环,那么它应该是
echo '<pre>';
foreach($row as $value) {
echo $value, '<br />';
}
echo '</pre>';
答案 1 :(得分:0)
implode()
完全与explode()
相反。基本上,它会将整个数组与您想要的任何字符串粘合在一起(在这种情况下为<br>
)。因此,按顺序显示邮政编码所需的唯一代码是:
$row = explode(",", $db_field['postcodes_covered']);
echo implode("<br>", $row);
这将输出所有邮政编码,并在它们之间换行。你输出11次的原因是因为数组中有11个项目,所以implode()
被调用了11次。