2016-10-11 6 views
1

data配列にPHPを使用してCSVファイルの内容を取り込みたいとします。PHPを使用してCSVの内容をjQuery配列に取り込みます

私の現在のコード:

<script src="http://code.jquery.com/jquery-3.1.1.js" integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA=" crossorigin="anonymous"></script> 

<?php 
$file = fopen('food.csv', 'r'); 
while (($line = fgetcsv($file)) !== FALSE) { 
    print_r($line); 
} 
fclose($file); 
?> 

<script type="text/javascript"> 
var data = <?php echo json_encode($line); ?>; 
document.write(data); 
</script> 

私はこれを実行するとしかし、私は次のような出力が得られます。

Array 
(
    [0] => McDonalds 
    [1] => Fast Food 
    [2] => London 
) 
Array 
(
    [0] => Marios 
    [1] => Italian 
    [2] => Manchester 
) 

<script type="text/javascript"> 
var data = false; 
document.write(data); 
</script> 

私は$line変数を推測しているが、ここで私の問題です。


マイfood.csvファイル:

McDonalds,Fast Food,London 
Marios,Italian,Manchester 

計画は以下のデモのようなものにdata配列を組み込むことである。

JSFiddle Demo

+1

は、[http://php.net/manual/en/function.json-encode.php](http://php.net/manual/en/function.json-encodeを見てみましょう。 PHP)。これは、データを 'JavaScript Object Notation'フォーマットに並べ替えるphp関数です。 –

答えて

1

あなたが行を印刷するたびにあなたは前のものを上書きします。

$file = fopen('food.csv', 'r'); 
$allfile = []; 
while (($line = fgetcsv($file)) !== FALSE) { 
    print_r($line); 
    $allfile[] = $line; 
} 
fclose($file); 
?> 

<script type="text/javascript"> 
var data = <?php echo json_encode($allfile); ?>; 
document.write(data); 
</script> 
+1

うわー!!あなたは速いです: - D 'var data = [["McDonalds"、 "Fast Food"、 "London"]、[Marios "、" Italian "、" Manchester "]]; document.write(data); 'は私の新しい出力です - それはきれいに働きました:-) – michaelmcgurk

+0

答えを受け取る前に6分待たなければなりません。ありがとうございます:-) – michaelmcgurk

+1

あなたを歓迎して、喜んで助けてください:P – Aschab

1

代わりの配列にそれぞれの行を保存してjson_encodeそのprint_r()を使用して:また、あなたは、私はそれはあなたが偽与えThatsなぜだと思う非配列とjsonencodeを使用している、これを試してみてください。例えば;

<?php 
$arr = []; 
$file = fopen('food.csv', 'r'); 
while (($line = fgetcsv($file)) !== FALSE) { 
    $arr[] = $line; 
} 
fclose($file); 
?> 

<script type="text/javascript"> 
var data = <?php echo json_encode($arr); ?>; 
document.write(data); 
</script>