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

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

У меня есть $ р массив, который имеет '' значения. Я удалил их с помощью функции 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)

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

Теги:
arrays
array-filter

1 ответ

1
Лучший ответ

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

$p2 = array_values($p2);

или в вашем случае вы могли бы сделать оба напрямую:

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню