Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中如何在过滤后重置数组顺序_Php_Arrays_Array Filter - Fatal编程技术网

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

在php中如何在过滤后重置数组顺序,php,arrays,array-filter,Php,Arrays,Array Filter,我有一个$p数组,它有'值。我使用array\u filter()函数删除了它们。但我还想重新排序/重置索引 $p数组内容 $p2 = array_filter($p); var_dump($p2); 0 => string '' (length=0) 1 => string '' (length=0) 2 => string '' (length=0) 3 => string '' (length=0) 4 => string '' (len

我有一个$p数组,它有
'
值。我使用
array\u filter()
函数删除了它们。但我还想重新排序/重置索引

$p
数组内容

$p2 = array_filter($p);
var_dump($p2);
  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
数组内容

$p2 = array_filter($p);
var_dump($p2);
  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 = array_values($p2);
这将保留相同的数组名称和筛选器,并立即重新为数组编制索引