[英]Format datas from array to Json in PHP
為了將數據發送到 AJAX 請求,我需要發送如下代碼格式的數據。
{
"columns": [
[ "Name" ],
[ "Position" ],
[ "Office" ],
[ "Extn." ],
[ "Start date" ],
[ "Salary" ]
],
"data": [
[
"Tiger Nixon",
"System Architect",
"Edinburgh",
"5421",
"2011/04/25",
"$320800"
],
[
"Garrett Winters",
"Accountant",
"Tokyo",
"8422",
"2011/07/25",
"$170750"
]
]
}
如果我將此代碼放入 .txt 中,則請求有效,但我的代碼的目的是使用 CSV 文件中的數據。這就是我使用此 file.php 的原因:
<?php
//import csv file
if(!empty($_FILES['csv_file']['name']))
{
$file_data = fopen($_FILES['csv_file']['tmp_name'], 'r');
$csv = fgetcsv($file_data);
//get header column of csv file : 1rst line
$heads = explode(';', $csv[0]);
foreach ($heads as $head) {
$json['columns'][] = [$head];
}
//get rows of csv file
fgetcsv($file_data);
while($row = fgetcsv($file_data))
{
$json['data'][] = array(
$row[0],
$row[1],
$row[2],
$row[3],
$row[4],
$row[5],
$row[6],
$row[7],
$row[8],
$row[9],
$row[10],
);
}
echo json_encode($json);
?>
你能告訴我我的代碼有什么問題嗎?
編輯:這是file.csv(數據來源)
Name,Position,Office,Extn.,Start date,Salary
Tiger NixonSystem Architect,,Edinburgh,5421,25/04/2011,$320800
Garrett Winters,Accountant,Tokyo,8422,25/07/2011,$170750
我已經修改了你的代碼。 請嘗試一下。 它正在工作。
我已經刪除了標題foreach
。 這不是必需的。 此外,刪除 2ed 循環中的一對一數組分配代碼並添加$json['data'][] = explode(';', $row[0]);
代碼。
這是修改后的代碼。
<?php
//import csv file
if (!empty($_FILES['csv_file']['name'])) {
$file_data = fopen($_FILES['csv_file']['tmp_name'], 'r');
$csv = fgetcsv($file_data);
//get header column of csv file : 1rst line
$json['columns'] = $csv;
//get rows of csv file
while ($row = fgetcsv($file_data)) {
$json['data'][] = $row;
}
echo json_encode($json);
}
?>
=> 輸出
大批:
Array
(
[columns] => Array
(
[0] => Name
[1] => Position
[2] => Office
[3] => Extn.
[4] => Start date
[5] => Salary
)
[data] => Array
(
[0] => Array
(
[0] => Tiger NixonSystem Architect
[1] =>
[2] => Edinburgh
[3] => 5421
[4] => 25/04/2011
[5] => $320800
)
[1] => Array
(
[0] => Garrett Winters
[1] => Accountant
[2] => Tokyo
[3] => 8422
[4] => 25/07/2011
[5] => $170750
)
)
)
JSON:
{"columns":["Name","Position","Office","Extn.","Start date","Salary"],"data":[["Tiger NixonSystem Architect","","Edinburgh","5421","25\/04\/2011","$320800"],["Garrett Winters","Accountant","Tokyo","8422","25\/07\/2011","$170750"]]}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.