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>";