PHP将Javascript数组拆分为多行并写入CSV

PHP将Javascript数组拆分为多行并写入CSV,php,arrays,Php,Arrays,我在一个PHP文件中发布了一个大数组。该数组如下所示: var arr = ["Filename", "Annotationtag", "Upper left corner X", "Upper left corner Y", "Lower right corner X", "Lower right corner Y", "locationName", "/var/www/html/projects/MasterImages/95-20180527-190018-205342-0000

我在一个PHP文件中发布了一个大数组。该数组如下所示:

var arr = ["Filename", "Annotationtag", "Upper left corner X", "Upper left corner Y", "Lower right corner X", "Lower right corner Y", "locationName", 
    "/var/www/html/projects/MasterImages/95-20180527-190018-205342-00002.jpg", "TShirtBackSide_Pepsi", 435, 123, 504, 151, "TShirtBackSide"];
一旦PHP脚本接收到这个数组,我想在每第7个元素处拆分这个数组,将其余的值移动到后续行,并最终将拆分后的数组写入一个csv文件,其中每行包含7列数据

一个简短的html文件如下所示:

Filename, Annotationtag, Upper left corner X, Upper left corner Y, Lower right corner X, Lower right corner Y, locationName
/var/www/html/projects/MasterImages/95-20180527-190018-205342-00002.jpg, TShirtBackSide_Pepsi, 435, 123, 504, 151, TShirtBackSide
arraypost.php

<html>
<head>
    <title>Test</title>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script type="text/javascript">
function pusharr() {
    var arr = ["Filename", "Annotationtag", "Upper left corner X", "Upper left corner Y", "Lower right corner X", "Lower right corner Y", "locationName", 
    "/var/www/html/projects/MasterImages/95-20180527-190018-205342-00002.jpg", "TShirtBackSide_Pepsi", 435, 123, 504, 151, "TShirtBackSide"];
    //Option1: var newarr = arr.toString();
    //Option2: var newarr = JSON.stringify();
    console.log(arr);
    $.post("getAnnotationsForTF.php", { 'data' : arr }, function(output){
          console.log(output);
          });
}
</script>
</head>

<body>
<button onclick="pusharr()">Click</button>
</body>
</html>
我尝试了各种选择。但无法通过

csvfile的预期输出如下所示:

Filename, Annotationtag, Upper left corner X, Upper left corner Y, Lower right corner X, Lower right corner Y, locationName
/var/www/html/projects/MasterImages/95-20180527-190018-205342-00002.jpg, TShirtBackSide_Pepsi, 435, 123, 504, 151, TShirtBackSide

数组块返回多维数组。您正在将该数组写入文件

相反,你必须做的是:

$file = fopen("files/test.csv",'w');

foreach ($iArray as $row) {
    fputcsv($file, $row); 
}

请记住,fputcsv有一个默认的分隔符“,”More info

数组块返回一个多维数组。您正在将该数组写入文件

相反,你必须做的是:

$file = fopen("files/test.csv",'w');

foreach ($iArray as $row) {
    fputcsv($file, $row); 
}

请记住,fputcsv有默认的分隔符“,”More info

Simple,
file\u put\u contents()
不知道如何写出数组!在打开PHP标记后立即进行测试时添加到文件顶部,例如
use
fputcsv
maybe?同意@artisticfenix
fputcsv()
将允许您将每一行作为一个数组,并直接将数组写入文件。您只需付出最小的努力就可以进行更改,它就是为这个问题而设计的:)您使用它的目的是什么,您可以将一个实际的PHP数组保存在一个文件中。。。并将其用作PHP中的数组……),使用
file\u put\u contents(“files/test.php”,“Simple,
file\u put\u contents()
不知道如何写出数组!在打开php标记后立即测试时添加到文件顶部,例如
使用
fputcsv
可能?同意@ArtisticPhoenix。
fputcsv()
将允许您将每一行作为一个数组,只需将数组直接写入文件。您只需花费最小的努力即可进行更改,而且它的设计正是为了这个问题:)您使用它的目的是什么,您可以将实际的PHP数组保存在一个文件中。。。并将其用作PHP中的数组……),使用
file\u put\u contents(“files/test.php”),“尝试添加
file\u APPEND
作为参数3,或使用上述建议的fputcsv添加
$f=fopen(“files/test.csv”,'w')
fputcsv($row)
为什么要创建一个带有文件put的CSV,而有专门为其设计的函数。@sietse85我正在编写一个空白文件…不确定是否丢失了任何内容…使用上述示例代码和我的实际数据尝试了这两种方法。fopen在出错时返回false,因此如果$file==false,则由于某种原因该文件无法运行ned@sietse85谢谢。当我在JSON.stringify JS级别对数组进行字符串化时,您的解决方案起到了作用。哇!从昨天下午开始尝试了这么多组合选项-不知道问题出在哪里-使用JS和PHP处理数组现在更清楚了。谢谢。请尝试将
FILE\u APPEND
添加为param 3或按照建议使用fputcsvboveAdd
$f=fopen(“文件/test.csv”,“w”)
fputcsv($row)
为什么要创建一个带有文件put的CSV,而有专门为其设计的函数。@sietse85我正在编写一个空白文件…不确定是否丢失了任何内容…使用上述示例代码和我的实际数据尝试了这两种方法。fopen在出错时返回false,因此如果$file==false,则由于某种原因该文件无法运行ned@sietse85谢谢。当我在JSON.stringify JS级别对数组进行字符串化时,您的解决方案起了作用。哇!从昨天下午开始尝试了这么多组合选项-不知道问题出在哪里-使用JS和PHP处理数组现在更清楚了。谢谢。