如何在取消设置元素后重新排列数组键?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

我有一个数组:

$array = array(1,2,3,4,5);

如果我要转储数组的内容,看起来像这样:

array(5) {
  [0] => int(1)
  [1] => int(2)
  [2] => int(3)
  [3] => int(4)
  [4] => int(5)
}

当我循环并取消设置某些键时,索引将全部删除。

foreach($array as $i => $info)
{
  if($info == 1 || $info == 2)
  {
    unset($array[$i]);
  }
}

随后,如果我现在做了另一个转储,它将如下所示:

array(3) {
  [2] => int(3)
  [3] => int(4)
  [4] => int(5)
}

有没有一个正确的方法来重置数组?

array(3) {
  [0] => int(3)
  [1] => int(4)
  [2] => int(5)
}
提问于
用户回答回答于
用户回答回答于

使用array_splice而不是unset

$array = array(1,2,3,4,5);
foreach($array as $i => $info)
{
  if($info == 1 || $info == 2)
  {
    array_splice($array, $i, 1);
  }
}

print_r($array);

示例

所属标签

可能回答问题的人

  • 人生的旅途

    10 粉丝484 提问5 回答
  • 无聊至极

    4 粉丝504 提问5 回答
  • 富有想象力的人

    4 粉丝0 提问4 回答
  • 嗨喽你好

    7 粉丝480 提问4 回答

扫码关注云+社区

领取腾讯云代金券