我只是尝试使用MySQL和PHP创建一个微调器,但几个小时后它会显示" ArrayArrayArray"在预期的产出面前。
if($_POST['artikel']){
$artikel = nl2br($_POST['artikel']);
$ar = explode("\n\r",$artikel);
$hasil = "";
foreach($ar as $ars){
$newstring1 = explode(" ", $ars);
foreach($newstring1 as $newstring2){
$newstring3 = explode("\n", $newstring2);
foreach($newstring3 as $newstring4){
$newstring5 = explode(",", $newstring4);
foreach($newstring5 as $value){
$cari = mysql_query("select * from sinonim where kata1='$value'");
$j = mysql_num_rows($cari);
if($j>0){
$ka = mysql_fetch_array($cari);
$hasil = $hasil."<span class='re'>".$ka['kata2']." ";
$hasil = explode(",", $hasil);
foreach($hasil as $vv) {
$hasil = $hasil.$vv."</span> ";
}
}else{
$cari2 = mysql_query("select * from sinonim where kata2='$value'");
$j2 = mysql_num_rows($cari2);
if($j2>0){
$ka2 = mysql_fetch_array($cari2);
$hasil = $hasil."<span class='re'>".stripslashes($ka2['kata1'])."</span> ";
}else{
$hasil = $hasil.$value." ";
}
}
}
}
}
}
echo $hasil;
}
结果如下所示
ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayhello all......
为什么&#34;数组&#34;印?我怎么能避免这种情况?
答案 0 :(得分:2)
你的代码很乱。该部分出现问题
$hasil = $hasil."<span class='re'>".$ka['kata2']." "; // line 1
$hasil = explode(",", $hasil); // line 2
foreach($hasil as $vv) { // line 3
$hasil = $hasil.$vv."</span> "; // line 4
} // line 5
在第2行中,您使用explode
将$hasil
拆分为数组,然后在第4行尝试将其追加到自身,尽管它现在不是字符串。这会导致&#34;数组&#34;输出
最终你想在这里使用另一个变量。您还要添加多个</span>
,这会使您的HTML无效。我想它应该是这样的:
$hasil = $hasil."<span class='re'>".$ka['kata2']." ";
$temp = explode(",", $hasil);
foreach($temp as $vv) {
$hasil = $hasil.$vv;
}
$hasil = $hasil."</span> ";
但第4行仍然没有意义。您在文本标记上进行迭代,文本标记已经是输出的一部分。你想在这附加什么?
In your edit您声明将第4行更改为$hasil = $vv."</span> ";
可以解决您的问题,但看起来您仍然无法生成无效的HTML,而且您的代码对于您的问题来说太复杂了。重新尝试实现。