我的代码输出了几个"数组"

时间:2014-09-23 21:31:17

标签: php mysql

我只是尝试使用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;印?我怎么能避免这种情况?

1 个答案:

答案 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,而且您的代码对于您的问题来说太复杂了。重新尝试实现。