6
(I'm a beginner)

我的脚本使用标准

$c = 0;
$t = count($array);

while ($c < $t) {
  $blah = $array[$c];
  ++$c;
}

相当广泛。但我刚刚遇到了我也需要的情况array_diff,它把这一切都搞砸了,因为现在数字键有间隙。我Undefined offset到处都是错误。

如何重置数组的数字键?数组中对象的顺序无关紧要。

4

3 回答 3

28

要重置密钥,您可以使用array_values()

$array = array_values($array);
于 2010-03-04T12:11:30.527 回答
8

您无需重置数组的键:您必须更改您通过它的方式。

而不是使用while循环并通过索引访问数组元素,您应该使用 foreach 循环,它只会从数组中获取元素:

foreach ($array as $key => $value) {
    // $key contains the index of the current element
    // $value contains the value of the current element
}
于 2010-03-04T12:12:08.200 回答
2

谢谢大图。

对于 lulz,我将与您分享我在等待明智答案时使用的以下白痴技巧:

$badArray = array_diff($allData, $myData);

$string = implode(",",$badArray);

$dump = explode(",",$string);

$goodArray = $dump;

工作。让我觉得很脏,但它奏效了。

于 2010-03-04T12:14:37.447 回答