【问题标题】:Change value of an item in array each time it occurs PHP每次发生时更改数组中项目的值 PHP
【发布时间】: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= 是一致的,我尝试使用strstrstr_replacesubstr 的混合使用,当使用上述数据设置单个变量时这些工作有效,但当数据为数组的一部分。

任何人都可以帮助删除每次出现在数组中的不需要的数据吗?

我尝试上传、更改并放入数组的 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
            [] => 
        )
)

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    我找到了一种使用以下方法的方法:

    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']);
    }
    

    【讨论】:

      猜你喜欢
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多