2017-01-17 3 views
1

特定のキー値をブール値または文字列に変更する方法はありますか?変換により、すべてのデータが文字列に変換されます。たとえば、Key値 "Date"は文字列ではなく整数でなければなりません。CSVをJSONに変換し、PHPを使用して特定のキー値をブール値または文字列に変更します

<?php 

    function csvToJson($fname) { 
     if (!($fp = fopen($fname, 'r'))) { 
      die("Can't open file"); 
     } 

     $key = fgetcsv($fp, "1024", ","); 

     $json = array(); 
      while ($row = fgetcsv($fp, "1024", ",")) { 
       $json[] = array_combine($key, $row); 
     } 

     fclose($fp); 

     foreach ($json as $k=>$v) { 


      $json[$k]['dateRequested']  = $json[$k]['DATE']; 
      $json[$k]['assignedAgent']  = $json[$k]['AGENT']; 
      $json[$k]['finalCompanyName'] = $json[$k]['COMPANY NAME']; 

      unset($json[$k]['DATE']); 
      unset($json[$k]['AGENT']); 
      unset($json[$k]['COMPANY NAME']); 


     } 

     return json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); 

    } 

?> 



<?php 
$json_data = csvToJson("lms.csv"); 
?> 

答えて

2

これを試してみてください:

while ($row = fgetcsv($fp, "1024", ",")) { 
// here $row contains all the columns in it in a numeric array 
// Means 0 => first column of csv, 2 => second column of csv and so on 

// you can convert any specific column value like 
$json[] = array($row[0], setype($row[0], "string"), and so on); 

を}

+0

列の代わりに特定の「キー値」である場合 – clestcruz

+0

ifブロックを使用してキー値のペアをチェックし、これまで何をしたいのですか –

1

あなたはこのように行うことができます。

$json[$k]['dateRequested']  = (int)($json[$k]['DATE']); 
$json[$k]['assignedAgent']  = $json[$k]['AGENT']; 
$json[$k]['finalCompanyName'] = $json[$k]['COMPANY NAME']; 

使用例:

$int = (int)(123); 
$bool = (bool)(1); 
$string = (string)(1234); 

var_dump($int); 
var_dump($bool); 
var_dump($string); 
+0

あなたのソリューションを試しましたが、残念ながら整数を使用すると値が0になります – clestcruz

+0

DATEのサンプル値と形式は何ですか? –

+0

これは、日付が16-09-16のようなものです – clestcruz

関連する問題