2016-10-21 3 views
0

나는 PHP로 매우 새롭고 도움이 필요합니다.PHP 2 차원 어레이를 CVS에 전달

나는 여러 페이지 형식을 만들었습니다. 이 양식에있는 대부분의 입력은 사용자가 동적으로 작성할 수 있습니다. 여기

이 다차원 어레이의 데이터가 I는 다음과 같은 방식으로 정렬하려는 CSV 시트 통과 codepen

에이의 동작 예이다 : Array ([0] => Position [1] => Unit [2] => Unit President)

그 방법 사용자가 두 개 또는 세 개의 입력을 동적으로 추가하면 각 항목을 더 쉽게 볼 수 있습니다.

$unitLevelPosition = $_POST["unitLevelPosition"]; 
    $unitLevelPositionValues = ""; 
    foreach($unitLevelPosition as $unitPositionValue) 
    { 
     $educationHistoryValues .= $unitPositionValue; 
    } 

배열 변수는 다음 변수의 나머지 부분에 추가되어이 같은 CVS에 인쇄되는 :

지금까지 난 단지 같은 배열을 필터링 할 수있었습니다 $ csvdata = $ firstName. ",". $ lastName. ",". $ educationHistoryValues; 내가 뭘 할 수 있을까? 그렇다면 누군가 내가 시작하도록 도울 수 있습니까?

+0

대신'당신이 foreach' 사용할 수 있습니다 간단한'join' 함수이며, PHP에서는'fcsvput' 함수가 내장되어 있습니다. 그물에이 기능을 검사하십시오. – vaso123

+0

fcsvput이 코드의 fwrite/fclose 부분을 대체합니까? –

+0

'fopen'과'flclose'가 필요합니다. 단지 적절한 csv 행을 만드는 데 도움이됩니다. – vaso123

답변

1

먼저 양식의 이름 속성을 변경해야합니다.

unitLevelPosition [] 대신 unitLevelPosition [0] [name_of_field]와 같은 것을 사용하십시오. 그리고 모든 새로운 입력 필드에 대해 색인을 1 씩 증가시킵니다. unitLevelPosition [1] [name_of_field].

[ 
    0 => [ 
     'position' => value_of_input, 
     'unit_president' => value_of_input, 
     ... and so on ... 
    ], 
    1 => [ 
     'position' => value_of_input, 
     'unit_president' => value_of_input, 
     ... and so on ... 
    ] 
] 

당신이해야 할 다음 일은 : 그런 다음 당신은 다음과 같아야 배열을해야합니다. PHP 함수 fputcsv (http://php.net/manual/de/function.fputcsv.php)를 사용하여 CSV 파일을 만듭니다.

이 측면에서는 CSV 파일을 만드는 데 사용할 수있는 아주 좋은 예를 찾을 수 있습니다. 한마디로

: 당신은 무엇이 필요

$fp = fopen('file.csv', 'w'); 

foreach($unitLevelPosition as $fields) 
{ 
    fputcsv($fp, $fields); 
} 

fclose($fp); 
+0

이야기 할 때 이름을 변경하는 것에 대해 원래 HTML 코드에서 변수를 수집하거나 다시 가져올 때를 의미합니까? –

+0

@TheodoreSteiner HTML 코드의 이름 속성을 의미합니다. 예 : 자바 스크립트 부분에서는 색인을 늘려야합니다. 예 : 등등 – Oliver

+0

많은 도움을 주셔서 감사합니다. –

-1

이 같은 것입니다 :

if (!empty($_POST['position'])) { 
    $fp = fopen('file.csv', 'w'); 
    foreach ($_POST['position'] as $key => $position) { 
     //Do validation here... 
     $fields = [ 
      'position' => $position, 
      'unit' => $_POST['unit'][$key], 
      'president' => $_POST['president'][$key], 
      'date' => $_POST['date'][$key], 
     ]; 
     fputcsv($fp, $fields, ','); 
    } 
    fclose($fp); 
} 

그러나이 같은 입력 이름 변경 :

<input type="text" name="position[]" value="" > 
<input type="text" name="unit[]" value="" > 
<input type="text" value="president[]"> 
<input type="text" value="date[]"> 
관련 문제