[英]Change value of an item in array each time it occurs PHP
我是 PHP 的初學者。 我想上傳一個 csv 文件並創建一個數組。 在該數組中,我希望更改某個鍵的值。
例如查詢鍵:From [query] => https://www.example.com/search/output/person/?loc=%5B%22105490917%22%2C%22101452733%22%5D&keywords=Computational%20Biologist&origin=主持人
To [查詢] => 計算生物學家
由於 &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
[] =>
)
)
我找到了一種使用以下方法:
foreach($all_rows as $key => $value)
{
$all_rows[$key]['query'] = strstr($all_rows[$key]['query'], 'keywords=');
$all_rows[$key]['query'] = str_replace('keywords=', '',$all_rows[$key]['query']);
$all_rows[$key]['query'] = substr($all_rows[$key]['query'], 0, strpos($all_rows[$key]['query'], "&"));
$all_rows[$key]['query']= urldecode($all_rows[$key]['query']);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.