重置array_diff()的结果数组的键

时间:2012-03-30 06:02:07

标签: php arrays

在我的应用程序中,我使用array_diff函数作为 -

$aDeleteCountryCodes = array_diff($aCurrentCountryCodes, $aNewCountryCodes);

现在发生的是,结果数组,$ aDeleteCountryCodes,有时会出现

Array
(
[2] => 213
)

有时候

Array
(
[2] => 213
[3] => 355
)

这使我用于从数据库中删除记录的循环混乱。对于循环是这样的 -

for ($i=0; $i <= count($aDeleteCountryCodes); $++)
{
   // Delete record $aDeleteCountryCodes[$i]
}

我想要的是数组 -

Array
(
[0] => 213
)

Array
(
[0] => 213
[1] => 355
)

使循环变得更容易。我希望我说清楚。我怎么能这样做?

4 个答案:

答案 0 :(得分:2)

  1. 使用array_values
  2. 使用foreach代替“手动for循环。”

答案 1 :(得分:2)

不是重置密钥,而是优先迭代现有的密钥:

   foreach ($aDeleteCountryCodes as $key => $value) {
     // delete goes here.
   }

答案 2 :(得分:2)

使用array_values(array_diff($ aCurrentCountryCodes,$ aNewCountryCodes));

答案 3 :(得分:1)

您可以将值输出到新数组中:

$aDeleteCountryCodes = array_values($aDeleteCountryCodes) //Keys resetted.