【问题标题】:How to put array in csv using PHP?如何使用 PHP 将数组放入 csv 中?
【发布时间】:2020-07-23 03:16:22
【问题描述】:

我正在尝试将关联数组传递给 csv 文件,我附上了一个数组示例。所有寄存器的键都是相同的,并且是 csv 的第一行。

Array
(
    [operation] => Alquiler
    [provider] => MERCADOLIBRE
    [date_day] => 2020-06-01
    [Type] => Departamento
    [Location] => VILLA BOSCH (PDO. DE TRES DE FEBRERO)
    [Neighborhood] => Villa Bosch
    [Environments] => 2 AMBIENTES
    [ValueRent] => 9000
    [SalesValue] => 0
)
Array
(
    [operation] => Alquiler
    [provider] => MERCADOLIBRE
    [date_day] => 2020-06-01
    [Type] => Casa
    [Location] => Caseros
    [Neighborhood] => 
    [Environments] => 3 AMBIENTES
    [ValueRent] => 19500
    [SalesValue] => 0
)

我将代码留在生成数组的位置:

$data = mysqli_query("SELECT s.codemp,s.ficha,s.operacion AS operation,s.proveedor AS provider,s.fecha_dia as date_day FROM control.solicitudes AS s WHERE fecha_dia >= '2020-06-01' AND ficha != '' LIMIT 50");

while($r = mysqli_fetch_assoc($data)) {

    $query_check = mysqli_query('SELECT i.in_tip as Type,i.in_loc as Location,i.in_bar as Neighborhood,a.ti_des as Environments,i.in_vaa as ValueRent,i.in_val as SalesValue FROM '.strtolower($r['codemp']).'.kkinmu AS i INNER JOIN '.strtolower($r['codemp']).'.kkambi AS a ON i.in_amb = a.ti_tip   WHERE i.in_fic = "'.strtolower($r['ficha']).'"');
   
    while ($r2 = mysqli_fetch_assoc($query_check)) {
        $r += $r2;
        unset($r['codemp']);
        unset($r['ficha']);
    }
}

【问题讨论】:

  • 您需要开始使用fputcsv。顺便说一句,尽量避免在另一个查询下查询,而是尝试使用连接
  • 您对此有何疑问?有什么不工作?

标签: php arrays csv foreach


【解决方案1】:
<?php
// Let your input array be like:
$arr = [
[
    "operation" => "Alquiler",
    "provider" => "MERCADOLIBRE",
    "date_day" => "2020-06-01",
    "Type" => "Departamento",
    "Location" => "VILLA BOSCH (PDO. DE TRES DE FEBRERO)",
    "Neighborhood" => "Villa Bosch",
    "Environments" => "2 AMBIENTES",
    "ValueRent" => "9000",
    "SalesValue" => "0",
],
[
    "operation" => "Alquiler",
    "provider" => "MERCADOLIBRE",
    "date_day" => "2020-06-01",
    "Type" => "Casa",
    "Location" => "Caseros",
    "Neighborhood" => "",
    "Environments" => "3 AMBIENTES",
    "ValueRent" => "19500",
    "SalesValue" => "0",
]
];

// get the header row from the input array
$hearders = array_keys(current($arr));

// open a file for writing
$fh = fopen("test.csv", "w");
// write header row
fputcsv($fh, $hearders);

// loop through the input array and write each row to the file.
foreach ($arr as $key => $row) {
    fputcsv($fh, $row);
}

// close the file handle.
fclose($fh);

阅读更多关于fputcsv

阅读更多关于open

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2022-07-11
    • 2011-04-30
    相关资源
    最近更新 更多