Написание массива PHP в файл CSV - Странность с итерацией данных Foreach ()Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Написание массива PHP в файл CSV - Странность с итерацией данных Foreach ()

Сообщение Anonymous »

У меня есть файл CSV на веб-сервере (например, 5GDPR6LR-1.csv) < /p>
Файл CSV состоит из данных из ассоциативного массива, записанного для файла, используя fputcsv () в цикле Foreach () < /p>
Проблема, когда я пытаюсь написать третью строку в CS. Каким -то образом, во второй раз, когда Foreach () итерация в массиве просто использует данные из первой строки массива вместо второй строки. Затем он с радостью продолжается снова в третьем ряду.echo 'ARRAY TO WRITE TO FILE:
'; print_r($data); echo '';

$fp = fopen($responseFile, 'w');
fputcsv($fp, $headers, ",", "\"", "\\", "\n");

$lastrow = array();

foreach ($data as $row) {
echo 'LASTROW:'; print_r($lastrow); echo '';
echo 'THISROW:'; print_r($row); echo '';

if ($row !== $lastrow) {
fputcsv($fp, $row, ",", "\"", "\\", "\n");
echo 'ROW WRITTEN TO CSV:'; print_r($row); echo '';
}
$lastrow = $row;
}

fclose($fp);
exit();
< /code>
Это журнал данных. Данные формы получены через массив после. Эти данные должны либо добавить новую строку в файл CSV, либо обновить существующую строку, если она уже существует. В этом запуске я пытаюсь добавить третью запись в файл CSV, который уже содержит первые два. Результатом этого прогона является то, что первая и третья строка хранятся в файле CSV, а вторая строка пропущена ... < /p>
POST:
Array
(
[Categories] => Array
(
[0] => 5
[1] => 6
)

[BatchID] => 1
[UserID] => 5GDPR6LR
[BatchItemID] => 3
[UserComment] => third comment
)

------------

EXISTING FILE DATA:
Array
(
[0] => Array
(
[UserID] => 5GDPR6LR
[BatchID] => 1
[BatchItemID] => 1
[Categories] => ["1","2"]
[UserComment] => first comment
)

[1] => Array
(
[UserID] => 5GDPR6LR
[BatchID] => 1
[BatchItemID] => 2
[Categories] => ["3","4"]
[UserComment] => second comment
)

)

------------

ARRAY TO WRITE TO FILE:
Array
(
[0] => Array
(
[UserID] => 5GDPR6LR
[BatchID] => 1
[BatchItemID] => 1
[Categories] => ["1","2"]
[UserComment] => first comment
)

[1] => Array
(
[UserID] => 5GDPR6LR
[BatchID] => 1
[BatchItemID] => 2
[Categories] => ["3","4"]
[UserComment] => second comment
)

[2] => Array
(
[UserID] => 5GDPR6LR
[BatchID] => 1
[BatchItemID] => 3
[Categories] => ["5","6"]
[UserComment] => third comment
)

)

------------
HERE IS THE ITERATION OF THE ABOVE ARRAY DATA...
------------

LASTROW:Array
(
)

THISROW:Array
(
[UserID] => 5GDPR6LR
[BatchID] => 1
[BatchItemID] => 1
[Categories] => ["1","2"]
[UserComment] => first comment
)

ROW WRITTEN TO CSV:Array
(
[UserID] => 5GDPR6LR
[BatchID] => 1
[BatchItemID] => 1
[Categories] => ["1","2"]
[UserComment] => first comment
)

LASTROW:Array
(
[UserID] => 5GDPR6LR
[BatchID] => 1
[BatchItemID] => 1
[Categories] => ["1","2"]
[UserComment] => first comment
)

THISROW:Array '

Подробнее здесь: https://stackoverflow.com/questions/797 ... array-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»