只有 php 中的值的新数组

new array with just values in php

所以我在 php 中编写了一个简单的导出 csv 函数,但是,当涉及到 headers 和值数组时,我遇到了一些问题。

我有一个用户可以导出哪些列的预设数组,它是$exportHeaders。所以我想做的是,我不想为 $row['value for column'] 输入每个值,而是想创建一种方法来创建一个新数组来插入而不是 $row 部分。但是,当我创建一个新数组时,在我的例子中是 $newExportHeader[],我最终得到一个看起来像这样的数组(带有键和值):

$newExportHeader = array(
0 => $row['first_name'],
1 => $row['last_name'],
2 => $row['email'],
);

但我需要一个没有关联键的数组。 所以我的问题是:有没有什么方法可以动态创建一个没有键的数组,只有值

protected $exportHeaders = array(
    "first_name", "last_name", "email", "street", "city", "province", "postal_code", "phone_1",
    "phone_2", "created_at", "updated_at"

);

目前有效:

foreach ($this->user->clients()->get() as $row) {
            fputcsv($handle, array(row['first_name'], row['last_name'], row['email']));
        }

我正在尝试的选项之一 - 不起作用:

foreach ($this->user->clients()->get() as $row) {
        foreach ($this->exportHeaders as $header) {
                $newExportHeader[] = $row[$header]; <-Problem Area
            }
            fputcsv($handle, array_values($newExportHeader));
        }

感谢任何帮助。

根据你的工作代码,并根据你的非工作代码猜测你要做什么,

试试这个:

foreach ($this->user->clients()->get() as $row) {
    $transformedRow = array(); // Create a new array for the row, based on new headers.
    foreach($this->exportHeaders as $header) {
        $transformedRow[] = row[$header]; // Add to the new array for the row in the correct order.
    }
    fputcsv($handle, $transformedRow); // Add row to the csv
}

在您的原始代码中,您似乎遇到了问题,因为您没有重新初始化 $newExportHeader 外循环的每次迭代。