Php foreach循环的结果打印多次 $text = implode('<br />', $row); echo "<pre>$text</pre>";

Php foreach循环的结果打印多次 $text = implode('<br />', $row); echo "<pre>$text</pre>";,php,mysql,Php,Mysql,我正在尝试拆分一个分隔的邮政编码字符串,这样它就不会像这样了: 之前: 行1:ST16、ST17、ST18、ST19、ST20 第二排:16、17、18、19、20 第三行:第16行、第17行、第18行、第19行、第20行 之后: 第1排:ST16 第2排:ST17 第3排:ST18 …等等 每个邮政编码都有自己的行。我已经设法做到了这一点,但当我运行代码时,它似乎是在按包含的元素数打印邮政编码数组。例如,如果数组中有11个元素,它将打印[ST16、ST17、ST18、ST19,

我正在尝试拆分一个分隔的邮政编码字符串,这样它就不会像这样了:

之前:
行1:ST16、ST17、ST18、ST19、ST20
第二排:16、17、18、19、20
第三行:第16行、第17行、第18行、第19行、第20行

之后:
第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);
}
$text = implode('<br />', $row);
echo "<pre>$text</pre>";
if($db\u找到){
//从bodyshops\u master\u网络表中选择所有字段
$SQL=“从车身车间\主机\网络中选择*”;
$result=mysql\u查询($SQL);
而($db\u field=mysql\u fetch\u assoc($result)){
//拆分阵列
$row=分解(“,”,$db_字段['Postcode_covered']);
foreach(行作为$value){
打印“”;
$text = implode('<br />', $row);
echo "<pre>$text</pre>";
回波内爆(“
”,$row); 打印“”;
$text = implode('<br />', $row);
echo "<pre>$text</pre>";
} } mysql\u close($db\u handle); }否则{ 打印“未找到数据库”;
$text = implode('<br />', $row);
echo "<pre>$text</pre>";
mysql\u close($db\u handle); }
您的foreach循环是冗余的,应该是:

echo '<pre>';
foreach($row as $value) {
    echo $value, '<br />';
}
echo '</pre>';
$text=内爆('
',$row); 回显“$text”;
如果你坚持循环,那么它应该是

echo';
foreach(行作为$value){
回显$value,“
”; } 回声';
您的foreach循环是冗余的,应该是:

echo '<pre>';
foreach($row as $value) {
    echo $value, '<br />';
}
echo '</pre>';
$text=内爆('
',$row); 回显“$text”;
如果你坚持循环,那么它应该是

echo';
foreach(行作为$value){
回显$value,“
”; } 回声';
内爆()
爆炸()正好相反。基本上,它用您想要的任何字符串将整个数组粘在一起(在本例中是

)。因此,您需要按顺序显示邮政编码的唯一代码是:

$row=explode(“,”,$db_字段['postcodes_covered']);
回波内爆(“
”,$row);
这将输出所有之间有换行符的邮政编码。您获得11次输出的原因是因为数组中有11个项,因此
内爆()
被调用了11次。

内爆()
的作用与
内爆()正好相反。基本上,它用您想要的任何字符串将整个数组粘在一起(在本例中是

)。因此,您需要按顺序显示邮政编码的唯一代码是:

$row=explode(“,”,$db_字段['postcodes_covered']);
回波内爆(“
”,$row);

这将输出所有之间有换行符的邮政编码。获得11次输出的原因是数组中有11个项,因此
内爆()调用了11次。

回显内爆(“
”,$row)
更改为
回显$value。“
在循环中内爆整行,因此每次foreach循环时都会得到整行。使用
$value
变量。由于循环$row n次,但行内爆,因此,如果分解中的20个邮政编码得到20次内爆迭代,请删除
回显内爆(
,$row)并使用
echo$value还有…强制性建议。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,.@FDL removing inflade()对我来说效果非常好,并阻止了重复打印。感谢you@LawrenceCherone我对php和其他东西还很陌生,所以我一定会看看。谢谢<代码>echo内爆(“
”,$row)
更改为
echo$value.“
在循环中内爆整行,因此每次foreach循环时都会得到整行。使用
$value
变量。由于循环$row n次,但行内爆,因此,如果分解中的20个邮政编码得到20次内爆迭代,请删除
回显内爆(
,$row)并使用
echo$value还有…强制性建议。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,.@FDL removing inflade()对我来说效果非常好,并阻止了重复打印。感谢you@LawrenceCherone我对php和其他东西还很陌生,所以我一定会看看。谢谢
$text = implode('<br />', $row);
echo "<pre>$text</pre>";