У меня есть файл 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
Написание массива PHP в файл CSV - Странность с итерацией данных Foreach () ⇐ Php
Кемеровские программисты php общаются здесь
1754250702
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 '
Подробнее здесь: [url]https://stackoverflow.com/questions/79724286/writing-php-array-to-csv-file-weirdness-with-foreach-iteration-of-array-data[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия