0

我正在尝试根据子数组中保存的 sha1 代码访问数组的某些子数组。我有以下代码为我工作:

//I take a sha1 string of 40chars from GET
if(isset($_REQUEST['sha1'])){

  //then I iterate through the array and check if the subarrays sha1 matches
  for($i = 0; $i < count($scomplaints); $i++) {
    if($scomplaints[$i]['sha1'] == $_REQUEST['sha1']){

      //once a match is found I delete the match...
      unset($scomplaints[$i]);

      //... reserialize the array and update it in the database
      $new_c = serialize($scomplaints);
      // ( add new array to database )
      break;
    }
  }
}

很直接。唯一的问题是:在某些随机情况下,循环不会读取子数组的 sha1 值。相反,它从数组中读取一个空字符串。

但是,当我对数组进行 var_dump 时,sha1 代码清楚地保存在数组中,并且与我从 GET 获得的代码相同(我进行了手动比较)。

我无法弄清楚问题是什么,也许是一些编码错误?也许你们中的一个可以帮助我解决这个问题?

感谢您的所有建议。

4

1 回答 1

0

我解决了。问题是数组没有被 unset($array) 重新索引。一旦我用 array_values($array) 重新索引它,它就会再次工作。

于 2012-08-21T16:32:45.367 回答