PHP:为与输入字符串匹配的字段调整数组键中的值

标签 php arrays

我有点紧张,这是我的第一个问题,但我已经很努力地解决了这个问题,需要一些帮助。

我制作了一个处理草图,它通过向 php 脚本发送查询来访问、排序和保存 csv 列表。它获取排序后的列表并显示它们。 (我不想稍后再进入xml或sql)

现在我正在努力使对列表中的条目进行投票成为可能。

在我下面的代码片段中,我有一个来自处理的查询,该查询通过发送字符串对条目进行投票。

我想根据数组中的字段检查处理传递的条目字符串,并通过向其添加一票来调整分数。

下面的代码没有破坏我的其他运行代码,也没有调整票数。 我怀疑有某种方式我没有正确访问字符串值,想知道是否有人可以建议我....

$ListV[]='score';
$ListV[]='entry';

<Snip>

if ($type == "voteUp") { 
  $Entry = $_GET['Entry'];
  if(($handle = fopen("List.csv", 'r')) !== FALSE) {
        set_time_limit(0);
        while(($data = fgetcsv($handle,0,',')) !== FALSE) {
          $ListV[$row]=$data;
          $row++;                       
        }
        fclose ($handle);

   $count = count($ListV);
   for($i=0; $i<$count; $i++){  //foreach???
      if ($rListV[$i][1]==$Entry || strcmp($rListV[$i][1],$Entry)==0) {
             $score =int($rListV[$i][0]);
             $rListV[$i][0]=$score+1;
      }
   }           
  header('Content-Type: text/csv; charset=utf-8');
  header('Content-Disposition: attachment; filename=file.csv');

  $listVote = fopen("List.csv",'w');
  foreach ($ListV as $values) {fputcsv($listVote,$values);}
  fclose($listVote);
  }
}

我相信我已经构建了一个带有分数和条目字段的可行二维数组。 我将分数放在首位的原因是这样我可以利用键排序并在需要时使用数组索引(例如在 php 中)。

请注意,我并不是要通过此列表中的投票来更改索引,而只是更改分数。 所以结果应该如下;

投票前:

2157 小猫

2157 狗子

11 羚羊

在投票给 Dogz 之后;

2157 小猫

2158 狗狗

11 羚羊

因此,Kittenz 始终是索引 1,Dogz 始终是索引 2,依此类推...... (后面key排序给出一个排序好的数组)

最佳答案

调整投票计数的(过于复杂的)部分使用不存在的 $rListV,然后将原始的 $ListV 放回文件中。

关于PHP:为与输入字符串匹配的字段调整数组键中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20633603/

相关文章:

PHP Show if 隐藏更新字段,但它们会被空字符串覆盖

javascript - 在聊天框中突出显示关键字,如何为多个关键字添加不同的样式?

javascript - 如何使用 `String.substring` 将文本字符串的开头设置为 JavaScript 数组中 `<span>` 之前的 5 个字符?

php - 用于从数组获取数据的 while 循环不起作用

php - 同时更改 WooCommerce 产品类型和更新状态

php - 从数据库中检索数据时换行

c# - 与未存储的列表或数组一起使用时,foreach 循环是否工作得更慢?

php - laravel 5.4 上传图片

C++ 3D 数组到 1D 导致堆缓冲区溢出

java - 查找数组中不匹配的元素