как сбросить порядок массивов после фильтрации в Stack Overflow

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

Перенос элементов в новый массив был бы решением. Я пойду с этим путем, если нет более быстрого метода.

0

Решение

Вам нужно использовать array_values ​​():

$p2 = array_values($p2);

или в вашем случае вы можете сделать оба сразу:

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

который сохранит то же имя массива и фильтр И переиндексирует массив сразу

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]