如何在PHP中过滤后重置数组顺序


how to reset array order after filtering in php

$p2 = array_filter($p);
var_dump($p2);

我有一个具有''值的$p数组。我已经使用array_filter()功能删除了它们。但我也想重新排序/重置索引。

$p数组内容

  0 => string '' (length=0)
  1 => string '' (length=0)
  2 => string '' (length=0)
  3 => string '' (length=0)
  4 => string '' (length=0)
  5 => string '' (length=0)
  6 => string '' (length=0)
  7 => string '' (length=0)
  8 => string '123' (length=3)
  9 => string '20130' (length=5)
  10 => string '' (length=0)

过滤后,新数组如下所示:

$p2数组内容

  8 => string '123' (length=3)
  9 => string '20130' (length=5)

我要$p2

  0 => string '123' (length=3)
  1 => string '20130' (length=5)

元素传输到新数组将是一种解决方案。如果没有更快的方法,我会选择这种方式。

你需要使用 array_values((:

$p2 = array_values($p2);

或者,在您的情况下,您可以直接执行这两项操作:

$p = array_values(array_filter($p));

这将保持相同的数组名称并过滤并立即重新索引数组