2017-12-13 24 views
1

配列があります。JSONでwithJson()を使用してエンコーディングしていますが、スリムなアプリケーションエラーが発生しています。 [7] =>アレイ ( [ID] => 4634 [名前]:Slimフレームワーク配列がJSONでエンコーディングされていません

  $db = Db::get_instance(); 
      $stmt = $db->query($sql); 
      if($stmt->rowCount() > 0) 
      { 
       $dataList = $stmt->fetchAll(PDO::FETCH_ASSOC); 
       //print_r($dataList);die; 
      } 
      $data = array(); 
      foreach($dataList as $row) 
      { //print_r($row); 
       $id = ''; 
       $name = ''; 
       foreach($row as $key=>$value) 
      { 
       if($key == 'id') $id = $value; 
       if($key == 'countname') $countname = trim($value); 
       if($key == 'city') $city = trim($value); 
       if($key == 'region') $region = trim($value); 
       if($key == 'type') 
       { 
        if($value == 'country') $name="$countname ($value)"; 
        if($value == 'state') $name = "$region, $countryname ($value)"; 
        if($value == 'city') $name="$city,$region,$countname ($value)"; 
       } 
       //$name = str_replace(',',' ',$name); 
       $temp['id'] = $id; 
       $temp['name'] = $name; 
      } 
      $data[] = $temp; 
     }print_r($data);die; 
     return $response->withJson($data,200); 

私の配列の一部の特殊文字がありますので予めご了承ください。 以下は私のコードと配列値であり、 =>サンgrard ,,ベルギー(市) )

私の配列は以下の通りです:

Array 
(
    [0] => Array 
     (
      [id] => 65 
      [name] => Ura Vajgurore,,Albania (city) 
     ) 

    [1] => Array 
     (
      [id] => 2024 
      [name] => Birregurra,,Australia (city) 
     ) 

    [2] => Array 
     (
      [id] => 2703 
      [name] => Kallangur,,Australia (city) 
     ) 

    [3] => Array 
     (
      [id] => 985 
      [name] => Gurnitz,,Austria (city) 
     ) 
) 
+1

表示されるエラーはありますか? – CharliePrynn

+1

「スリムアプリケーションエラー」がスローされたが、質問に追加されていないことに言及します。問題を絞り込む可能性があるため、エラーメッセージを提供できますか? – Titi

+0

error_reporting(E_ALL);ini_set( 'display_errors'、1);このコードでもエラーは表示されません。 –

答えて

1

あなたは私のarrayデータに特殊文字があったことを述べたように: 例は:

[7] => Array 
      (
       [id] => 4634 
       [name] => Saint-gÚrard,,Belgium (city) 
      ) 

あなたはDB接続の確立後に定数名をリセットする必要があります。これはあなたのために働くだろう

$db = Db::get_instance(); 
$db->exec("SET NAMES 'utf8';"); 

希望。

関連する問題