【发布时间】:2021-12-28 22:33:45
【问题描述】:
我是 PHP 初学者。我想上传一个 csv 文件并创建一个数组。在该数组中,我希望更改某个键的值。
例如查询键:
从
[query] => https://www.example.com/search/output/person/?loc=%5B%22105490917%22%2C%22101452733%22%5D&keywords=Computational%20Biologist&origin=host
到
[query] => Computational Biologist
由于&keywords= 和&origin= 是一致的,我尝试使用strstr、str_replace 和substr 的混合使用,当使用上述数据设置单个变量时这些工作有效,但当数据为数组的一部分。
任何人都可以帮助删除每次出现在数组中的不需要的数据吗?
我尝试上传、更改并放入数组的 csv 文件中的数据
query,firstName,lastName,
https://www.example.com/search/output/person/?loc=%5B%22105490917%22%2C%22101452733%22%5D&keywords=Computational%20Biologist&origin=host,John,Smith,
https://www.example.com/search/output/person/?loc=%5B%22105490917%22%2C%22101452733%22%5D&keywords=Computational%20Biologist&origin=host,fred,clause,
https://www.example.com/search/output/person/?loc=%5B%22105490917%22%2C%22101452733%22%5D&keywords=Computational%20Biologist&origin=host,brendan,bobby,
到目前为止我的代码:
<form enctype='multipart/form-data' action='' method='post'>
<label>Upload CSV file Here</label><br>
<input size='50' type='file' name='filename'>
</br>
<input type='submit' name='submit' value='Upload File'>
</form>
<?php
if (isset($_POST['submit']))
{
$file = fopen($_FILES['filename']['tmp_name'], "r");
$all_rows = array();
$header = fgetcsv($file);
while ($row = fgetcsv($file)) {
$all_rows[] = array_combine($header, $row);
}
}
echo "<pre>";
print_r($all_rows);
echo "</pre>";
我想留下一个如下所示的数组:
Array
(
[0] => Array
(
[query] => Computational Biologist
[firstName] => John
[lastName] => Smith
[] =>
)
[1] => Array
(
[query] => Computational Biologist
[firstName] => fred
[lastName] => clause
[] =>
)
[2] => Array
(
[query] => Computational Biologist
[firstName] => brendan
[lastName] => bobby
[] =>
)
)
【问题讨论】: