【问题标题】:Printout particular column in JSON format from CSV file从 CSV 文件中以 JSON 格式打印特定列
【发布时间】:2019-12-20 18:55:20
【问题描述】:

我有一个 CSV 格式的 Excel 文件,它有两列。

  • 第一列包含从 1 到 26 的数值。
  • 第二列包含从 A 到 Z 的字母

我用来以 JSON 格式显示数据的代码如下所示。

$file="data.csv";
$csv= file_get_contents($file);
$array = array_map("str_getcsv", explode("\n", $csv));
$json = json_encode($array);
print_r($json);

它打印出这样的数据:

[["1","A"],["2","B"],["3","C"],["4","D"],["5","E"],["6","F"],["7","G"],["8","H"],["9","I"],["10","J"],["11","K"],["12","L"],["13","M"],["14","N"],["15","O"],["16","P"],["17","Q"],["18","R"],["19","S"],["20","T"],["21","U"],["22","V"],["23","W"],["24","X"],["25","Y"],["26","Z"],[null]]

但我想要只显示第一列值的格式。喜欢

1,2,3,4,5,6,7,8....

等等

另一方面。

请建议我该怎么做?

【问题讨论】:

    标签: php json csv


    【解决方案1】:

    您当前代码的一种简单方法是更改​​json_encode() 以提取第一列(使用array_column())...

    $json = json_encode(array_column($array,0));
    

    【讨论】:

    • 这给了我想要的结果。但这是正确的 JSON 格式吗?我认为 JSON 格式的数据包含在 {} 中,但我得到的结果如下["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26",null]
    • 还有什么方法可以从哪里得到这个数组的长度
    • 你可以使用json_encode(array_column($array,0), JSON_FORCE_OBJECT)
    猜你喜欢
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多