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

时间:2014-11-07 17:19:03

标签: php arrays array-filter

$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)

将元素传输到新阵列将是一种解决方案。如果没有更快的方法,我将采用这种方式。

1 个答案:

答案 0 :(得分:1)

您需要使用array_values()

$p2 = array_values($p2);

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

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

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