2014-09-23 51 views
1

我剛剛嘗試使用MySQL和PHP創建一個微調器,但在幾個小時後,它在預期輸出前顯示「ArrayArrayArray」。我的代碼輸出了幾個「Array」

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...... 

爲什麼 「陣列」 印?我怎樣才能避免這種情況?

+0

我只是覺得我的問題在這裏 $ hasil = explode(「,」,$ hasil); foreach($ hasil as $ vv){ $ hasil = $ hasil。$ vv。「」; } ,但我不知道在哪裏解決 我只想 – ocim 2014-09-23 21:36:24

+1

你需要解釋一下你想要做什麼導致這樣的 大家好...... 不 ArrayArrayArrayhello所有...... ?什麼是輸入,輸出應該是什麼......它實際上只不過是代碼湯。 – agassner 2014-09-23 21:37:53

+0

缺乏壓痕傷害了我的眼睛! – Alex 2014-09-23 22:05:17

回答

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行嘗試將其追加到本身,雖然它現在是一個數組不是字符串。這會導致「數組」輸出。

最終你想在這裏使用另一個變量。此外,您還將添加多個</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,而且您的代碼對於您要實現的內容太複雜。