2016-10-20 214 views
0

我将字段输入传递给.csv表单,但我想知道是否可以将变量名称与值打印在一起?打印CVS输入的变量名称

这里是我如何打印到将该.cvs:

PHP

<?php 
$csvdata = $firstName . ", " . $lastName . ", " . $homeAddress . ", " . $homeAddressTwo . ", " . $city . ", " . $province . ", " . $postalCode . ", " . $homePhone . ", " . $personalEmail . ", " . $confirmEmail . ", " . $oectaNumber . ", " . $memberStatus . ", " . $teacherTraining . ", " . $teachingYears . "," . $employmentHistoryValues; 
$fp = fopen("formdata.csv", "a"); 
if($fp) 
    { 
    fwrite($fp, $csvdata . "\n"); 
    fclose($fp); 
    } 
?> 

这里就是我想要它看起来像:

Array ([0] => WLU [1] => Math [2] => 2016) 

下面是我正在处理这些变体:

$educationHistoryValues = ""; 
foreach(print_r($_POST["educationHistory"]) as $educationValue) 
{ 
    $educationHistoryValues .= $educationValue; 
} 

输入数据:

<div id="educationHistory" name="educationHistory[]"> 
<input type="text" class="three-lines" name="educationHistory[]" id="educationInstitution_1" placeholder="Institution" onblur="this.placeholder='Institution'" onfocus="this.placeholder=''" onkeyup="checkPage2()" /> 

<input type="text" class="three-lines" name="educationHistory[]" id="degreeFromInstitution_1" placeholder="Degree/Diploma" onblur="this.placeholder='Degree/Diploma'" onfocus="this.placeholder=''" onkeyup="checkPage2()" /> 

<input type="date" class="three-lines" name="educationHistory[]" id="educationalDates_1" /> 
          <input type="button" value="+" onclick="addEducation()" /> 
         </div><!--end educationHistory Div -->     
        </div><!--end of education div--> 

在CSV文件本身,结果是很容易破解,但是我从绘画形式有一堆的动态输入,这将产生多维数组和一些输入是文字区域,所以我想测试这个理论。

+0

您准确预计什么输出结果? – krasipenkov

+0

目前它仅在特定单元格中输入输入结果。当我print_r整个表单时,它给出了一个相当整洁的布局,像这样:[memberStatus] =>好,其中成员状态是变量名称,好的是用户输入。会有这样的事情吗? –

+0

变量来自哪里?在你的例子中哪些是动态的(你对它们进行了硬编码,这对我来说意味着你知道动力学?) – nerdlyist

回答

0

例如,您可以创建一个包含列名称的标题csv行。你可以做到这一点的:

$csv = 'col1, col2.....'.PHP_EOL; 
    foreach ($data as $item) { 
     $csv .= $item['val1'].','.$item['val2'].....PHP_EOL; 
    } 
    // write $csv to file 

,如果你在Excel中打开或打开办公室的csv文件这将是有益的。

但是,如果你想键名+值:

foreach ($data as $key => $item) { 
     $csv .= $key.'=>'.$item['val1'].','; 
    } 

这是例如对于一个dimensionsl阵列。如果你有多维空间,你会有嵌套循环。

+0

这很整齐!在嵌套循环的情况下,我将如何将其与第二个示例进行整合。例如,假设item1是一个普通的单个输入,但是项目2是可以动态生成的三个输入的集合。这看起来代码明智吗? –

+0

你可以在问题中添加这个嵌套数组的转储+你想要的输出看起来像 – krasipenkov

+0

非常新的PHP,什么是“转储”见上面修改 –