使用Unset:PHP更改数组中的列标题

使用Unset:PHP更改数组中的列标题,php,unset,Php,Unset,我试图更改写入csv第一行、列标题的文本。我正在尝试使用取消设置,但它不起作用。我引用了错误的数组吗?任何帮助都将不胜感激。我的代码如下: for ($x=0; $x<$count; $x++) { $currentRecord = $response['data'][$x]; $jsonDataInArray[] = array ( "b98336b40c8420dc2f1401d6451b1b47198eee6d" => $response

我试图更改写入csv第一行、列标题的文本。我正在尝试使用
取消设置
,但它不起作用。我引用了错误的数组吗?任何帮助都将不胜感激。我的代码如下:

for ($x=0; $x<$count; $x++)
{
    $currentRecord = $response['data'][$x];
    $jsonDataInArray[] = array
    (
        "b98336b40c8420dc2f1401d6451b1b47198eee6d" => $response['data'][$x]['b98336b40c8420dc2f1401d6451b1b47198eee6d'],
        "17a14a9da9815451ff5ffc669d407e8b0376b06b" => $response['data'][$x]['17a14a9da9815451ff5ffc669d407e8b0376b06b'],
        "3eedd4fd08f44a72d911dc4934a6916f3b31911b" => $response['data'][$x]['3eedd4fd08f44a72d911dc4934a6916f3b31911b'],
        "52ede287f6c55eb6b12821ca24f74098779abdce" => $response['data'][$x]['52ede287f6c55eb6b12821ca24f74098779abdce'],
        "13916ba291ab595f27aefbff8b6c43a3fb467b72" => $response['data'][$x]['13916ba291ab595f27aefbff8b6c43a3fb467b72']
    )
)

//change key names.
$jsonDataInArray["Col1"] = $jsonDataInArray["b98336b40c8420dc2f1401d6451b1b47198eee6d"];
unset($jsonDataInArray["b98336b40c8420dc2f1401d6451b1b47198eee6d"]);

//first row of data 
$test_array = $jsonDataInArray[0];



//open file to write towards
if($startPos == 0){
    $fp = fopen('output.csv', 'w');
    fputcsv($fp, array_keys($response['data'][0]));
}else{
    $fp = fopen('output.csv', 'a');
}

//write data
foreach ($jsonDataInArray as $fields)
{
    fputcsv($fp, $fields);
}
我期望的输出是

Col1|17a14a9da9815451ff5ffc669d407e8b0376b06b|3eedd4fd08f44a72d911dc4934a6916f3b31911b|52ede287f6c55eb6b12821ca24f74098779abdce
4616|||stuff

您从错误的阵列输出

将此部分更改为使用
$jsonDataInArray
而不是
$response

//open file to write towards
if($startPos == 0){
    $fp = fopen('output.csv', 'w');
    fputcsv($fp, array_keys($jsonDataInArray));
}else{
    $fp = fopen('output.csv', 'a');
}

您的
$jsonDataInArray
具有数字索引,每个索引都包含一个数组

替换

$jsonDataInArray["Col1"] = $jsonDataInArray["b98336b40c8420dc2f1401d6451b1b47198eee6d"];
unset($jsonDataInArray["b98336b40c8420dc2f1401d6451b1b47198eee6d"]);


让它在您的测试中工作,但您可能希望用一个循环来替换它,以便对每个条目进行更改。

投票支持您的回答。这会起作用,但它会给我
1,2,3,4等…
作为我的列标题,因为这些是该数组中的键。我希望我可以接受你的两个答案作为最终所有答案,因为你们都帮助我找到了正确的代码。我把你投了赞成票,给了丹格洛夫绿卡,因为他得分较少,可能需要一些帮助
$jsonDataInArray["Col1"] = $jsonDataInArray["b98336b40c8420dc2f1401d6451b1b47198eee6d"];
unset($jsonDataInArray["b98336b40c8420dc2f1401d6451b1b47198eee6d"]);
$jsonDataInArray[0]["Col1"] = $jsonDataInArray[0]["b98336b40c8420dc2f1401d6451b1b47198eee6d"];
unset($jsonDataInArray[0]["b98336b40c8420dc2f1401d6451b1b47198eee6d"]);