J'essaie d'insérer des données dans un fichier CSV en stockant les données dans un tableau avant d'écrire en CSV. Mais je suis confronté à un problème avec l'écriture d'un tableau multidimensionnel au fichier CSV.Ecrire un tableau au fichier CSV en utilisant PHP
Voici comment mon entrée ressemblait à:
<input type="text" name="names" placeholder="Enter Name" />
<select name="gender">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
<input type="text" name="age" placeholder="Enter Age" />
<input type="text" name="state" placeholder="Enter State" />
<label>How Did You Find Us?</label>
<input type="checkbox" name="remarks[]" value="Search Engine (eg. Google)"> Search Engine (eg. Google)
<input type="checkbox" name="remarks[]" value="Facebook"> Facebook
<input type="checkbox" name="remarks[]" value="Newspaper Ads"> Newspaper Ads
<input type="checkbox" name="remarks[]" value="Bus-Stop Ads"> Bus-Stop Ads
Le code suivant est comment je stocker des données d'entrée et d'écrire dans le fichier CSV:
$names = filter_input(INPUT_POST, "names");
$gender = filter_input(INPUT_POST, "gender");
$age = filter_input(INPUT_POST, "age");
$state = filter_input(INPUT_POST, "state");
$remarks = $_POST['remarks'];
$inputArr[] = array(
$names, $gender, $age, $state, $remarks
);
$fp = fopen($_SERVER["DOCUMENT_ROOT"]."/student.csv", "a+");
fputcsv($fp, $inputArr);
fclose($fp);
La sortie $inputArr
est la suivante qui est multidimentional:
Array
(
[0] => Melinda
[1] => Female
[2] => 23
[3] => united state
[4] => Array
(
[0] => Facebook
[1] => Newspaper Ads
[2] => Bus-Stop Ads
)
)
Je voulais que le tableau soit comme le tableau ci-dessous de sorte que les données peuvent être insérés dans CSV, mais je ne sais pas comment le tableau foreach pour obtenir la sortie comme suit:
Array
(
[0] => Melinda
[1] => Female
[2] => 23
[3] => united state
[4] => Array
[5] => Facebook
[6] => Newspaper Ads
[7] => Bus-Stop Ads
)
pouvez-vous ajouter un petit échantillon de csv avec l'en-tête? –
Enlever '$ remarque' de votre' $ inputArray' et ensuite utiliser array_merge() pour les ajouter à la place: '$ inputArray = array_merge ($ inputArrray, $ remarques);'. Cela devrait créer un tableau à une dimension avec toutes les valeurs. –
Btw, votre code devrait produire un autre niveau dans votre tableau actuel, puisque vous utilisez '$ inputArr [] = ...' au lieu de '$ inputArr = ...' –