fputcsv - только один столбец
Я хочу сохранить части (и по-другому расположены) моей базы данных MySQL в файле CSV. Для этого я написал этот кусок кода:
$headerDisplayed = false;
foreach ($arr as &$currName)
{
$result2 = mysql_query("SELECT * FROM Experiment Where Person='$currName'");
$i = 1;
while ($row2 = mysql_fetch_array($result2))
{
$list['Name'] = $currName;
$list['Studie'] = $row2['Studie'];
if(strcmp($row2['Antwort'],$row2['Korrekt']) == 0)
{
$list["A $i"] = '0';
}
else
{
$list["A $i"] = '1';
}
$i++;
}
if ( !$headerDisplayed ) {
// Use the keys from $data as the titles
fputcsv($fp, array_keys($list));
$headerDisplayed = true;
}
fputcsv($fp, $list);
}
fclose($fp);
К сожалению, это не то, что я хотел. Мой план состоял в том, чтобы каждая запись $list
(например $list["A 1"]
или же $list["A 15"]
) имеет свою колонку. А потом зов fputcsv
следует создать новую строку и снова один столбец для каждого $list
запись. Я создаю новые строки с каждым fputcsv
вызов, как и ожидалось, но полный $list
массив находится в первом (самом левом) столбце.
Что мне нужно сделать, чтобы решить эту проблему?
ДОБАВЛЕНО: я получаю что-то вроде:
[1,0,0,0,1,1,0,0] [] [] [] [] [] [] []
[1,0,1,1,0,1,0,0] [] [] [] [] [] [] []
[0,1,1,1,1,1,0,1] [] [] [] [] [] [] []
но то, что я хочу, больше похоже на:
[1] [0] [0] [0] [1] [1] [0] [0]
[1] [0] [1] [1] [0] [1] [0] [0]
[0] [1] [1] [1] [1] [1] [0] [1]
3 ответа
Это это:
fputcsv($fp, array_values($list));
РЕДАКТИРОВАТЬ:
Используйте это для мгновенной работы с Excel:
fputcsv($fp, array_values($list), ';', ' ');
РЕДАКТИРОВАТЬ 2: Символ по умолчанию, который используется в качестве разделителя полей в Excel, задается настройками локали окон. Это означает: если вы экспортируете csv-файл с немецкими настройками локали, это вызовет проблемы с Excel в среде us... В другой теме обсуждалась эта тема.
Попробуй это
fputs($fp, implode(array_keys($list), ',')."\n");
fputs($fp, implode(array_values($list), ',')."\n");
Вы должны сделать матрицу:
{
$list["A"]["$i"] = '0';
}
else
{
$list["A"]["$i"] = '1';
}
Смотрите пример 1 из http://php.net/manual/en/function.fputcsv.php