Я должен получить некоторые данные через API, используя Curl и сохранить его в файл CSV. Пример набора данных json, который я получаю при подключении через API: < /p>
{
"id": 24598942,
"created_at": "2021-08-16T15:59:25.345+01:00",
"success": true,
"payment_amount": 90,
"invoice_ids": [
1646569091
],
"ref_num": "2858",
"payment_method": "BACS"
}
< /code>
my php -код: < /p>
$url = 'https://example.com/?page='.$x;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $auth_key_here));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$query = curl_exec($curl);
curl_close($curl);
$decoded = json_decode($data, true);
if ($x == 1) {
$fp = fopen($csv, 'w');
fputcsv($fp, array_keys($decoded[0]));
fclose($fp);
}
$fp2 = fopen($csv, 'a');
foreach ($decoded as $fields) {
fputcsv($fp2, array_flatten($fields));
$row_count++;
}
fclose($fp2);
function array_flatten($nonFlat) {
$flat = array();
foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($nonFlat)) as $k=>$v) {
$flat[$k] = $v;
}
return $flat;
}
< /code>
Это дает мне «vingeice_ids», чтобы выровнять, чтобы я мог видеть фактические данные в файле CSV, а не «массив». Но некоторые записи содержат несколько идентификаторов счета-фактуры в массиве: < /p>
{
"id": 21016112,
"created_at": "2020-08-17T16:00:55.552+01:00",
"success": true,
"payment_amount": 90,
"invoice_ids": [
1646540900,
1646277088
],
"ref_num": "ZN905TNVCNGQY",
"payment_method": "Credit Card"
}
< /code>
Этот файл CSV забивает, перемещая некоторые данные в неправильные столбцы, как изображено здесь:
csv -файл < /p>
Как изменить код PHP, так что плоский массив с несколькими идентификаторами счета подходит для одного столбца в файле CSV? < /p>
Подробнее здесь: https://stackoverflow.com/questions/797 ... e-csv-cell
Уравновешивает массив JSON с несколькими предметами - как поместиться в одну ячейку CSV? ⇐ Php
Кемеровские программисты php общаются здесь
1752963379
Anonymous
Я должен получить некоторые данные через API, используя Curl и сохранить его в файл CSV. Пример набора данных json, который я получаю при подключении через API: < /p>
{
"id": 24598942,
"created_at": "2021-08-16T15:59:25.345+01:00",
"success": true,
"payment_amount": 90,
"invoice_ids": [
1646569091
],
"ref_num": "2858",
"payment_method": "BACS"
}
< /code>
my php -код: < /p>
$url = 'https://example.com/?page='.$x;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $auth_key_here));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$query = curl_exec($curl);
curl_close($curl);
$decoded = json_decode($data, true);
if ($x == 1) {
$fp = fopen($csv, 'w');
fputcsv($fp, array_keys($decoded[0]));
fclose($fp);
}
$fp2 = fopen($csv, 'a');
foreach ($decoded as $fields) {
fputcsv($fp2, array_flatten($fields));
$row_count++;
}
fclose($fp2);
function array_flatten($nonFlat) {
$flat = array();
foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($nonFlat)) as $k=>$v) {
$flat[$k] = $v;
}
return $flat;
}
< /code>
Это дает мне «vingeice_ids», чтобы выровнять, чтобы я мог видеть фактические данные в файле CSV, а не «массив». Но некоторые записи содержат несколько идентификаторов счета-фактуры в массиве: < /p>
{
"id": 21016112,
"created_at": "2020-08-17T16:00:55.552+01:00",
"success": true,
"payment_amount": 90,
"invoice_ids": [
1646540900,
1646277088
],
"ref_num": "ZN905TNVCNGQY",
"payment_method": "Credit Card"
}
< /code>
Этот файл CSV забивает, перемещая некоторые данные в неправильные столбцы, как изображено здесь:
csv -файл < /p>
Как изменить код PHP, так что плоский массив с несколькими идентификаторами счета подходит для одного столбца в файле CSV? < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/79707593/flatten-json-array-with-multiple-items-how-to-fit-to-a-single-csv-cell[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия