只有 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
外循环的每次迭代。
所以我在 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
外循环的每次迭代。