我正在尝试拆分一个由邮政编码分隔的字符串,这样它就不会看起来像这样:
之前:
第1行:ST16、ST17、ST18、ST19、ST20
第2列:AT16、AT17、AT18、AT19、AT20
第3行:LL16、LL17、LL18、LL19、LL20
之后:
第1行:ST16
第2行:ST17
第3行:ST18…etc
每个邮政编码都有自己的一行。我已经成功地做到了这一点,但是当我运行代码时,它似乎是按照包含的元素数量打印邮政编码数组。例如,如果阵列中有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);
}
foreach循环是多余的,应该只是:
$text = implode('<br />', $row);
echo "<pre>$text</pre>";
如果你坚持循环,那么它应该是
echo '<pre>';
foreach($row as $value) {
echo $value, '<br />';
}
echo '</pre>';
implode()
执行与explode()
完全相反的操作。基本上,它将整个数组与您想要的任何字符串(在本例中为<br>
)粘合在一起。因此,您需要按顺序显示邮政编码的唯一代码是:
$row = explode(",", $db_field['postcodes_covered']);
echo implode("<br>", $row);
这将输出所有邮政编码,其中包含换行符。之所以得到11次输出,是因为数组中有11个项,所以implode()
被调用了11次。