我想使用PHP在我的data
数组中填充CSV文件的内容。
我目前的代码:
<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
数组合并到下面的演示中:
答案 0 :(得分:1)
每次打印一行时都会覆盖前一行。你也在使用jsonencode与非阵列我认为这就是为什么它会给你假,试试这个:
$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 :(得分:1)
而不是使用print_r()
将每一行保存到数组中并json_encode
。例如;
<?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>