Удалить пустые элементы из массива (PHP)

Удалить пустые элементы из массива проще всего при помощи функции array array_diff(array $array1, array $array2[, array $... ]). В качестве первого параметра передается исходный массив, в качестве второго — массив с одним пустым значением.

Пример

Возьмем в качестве примера массив с несколькими пустыми элементами и удалим их.

<?php // массив с пустыми строками $arr = array('', 'e', '', 'x', '', 'p', '', 'a', '', 'n', '', 'g', '', 'e', ''); print_r($arr); $new_arr = array_diff($arr, array('')); print_r($new_arr);

Результат примера

Array ( [0] => [1] => e [2] => [3] => x [4] => [5] => p [6] => [7] => a [8] => [9] => n [10] => [11] => g [12] => [13] => e [14] => ) Array ( [1] => e [3] => x [5] => p [7] => a [9] => n [11] => g [13] => e )

Пример 2

В качестве другого примера возьмем массив, где в качестве пустых значений будут нули и null-значения, которые нужно удалить.

<?php // массив с буквами, нулями и null $arr = array(0, 'e', false, 'x', 0, 'p', null, 'a', '0', 'n', '0', 'g', false, 'e', 0); print_r($arr); $new_arr = array_diff($arr, array(0, null)); print_r($new_arr);

Результат примера 2

Array ( [0] => 0 [1] => e [2] => [3] => x [4] => 0 [5] => p [6] => [7] => a [8] => 0 [9] => n [10] => 0 [11] => g [12] => [13] => e [14] => 0 ) Array ( [1] => e [3] => x [5] => p [7] => a [9] => n [11] => g [13] => e )

Функция array_delete()

Можно написать функцию array array_delete(array $array, array $symbols = array('')), которая будет принимать два параметра: исходный массив и необязательный параметр-массив с элементами, которые надо удалить.

<?php /** * Удалить пустые элементы из массива * @param array $array * @param array $symbols удаляемые значения * @return array */ function array_delete(array $array, array $symbols = array('')) { return array_diff($array, $symbols); }

Пример array_delete()

<?php // массив с пустыми строками $arr = array('', 'e', '', 'x', '', 'p', '', 'a', '', 'n', '', 'g', '', 'e', ''); $arr = array_delete($arr); print_r($arr); // массив с буквами, нулями и null $arr = array(0, 'e', false, 'x', 0, 'p', null, 'a', '', 'n', '', 'g', false, 'e', 0); $arr = array_delete($arr, array('', 0, null)); print_r($arr);

Результат array_delete()

Array ( [1] => e [3] => x [5] => p [7] => a [9] => n [11] => g [13] => e ) Array ( [1] => e [3] => x [5] => p [7] => a [9] => n [11] => g [13] => e )

Категории

ПрограммированиеPHPМассивы в PHPМассивы

Читайте также

Комментарии

Тимур Орлов

Благодарен за статью, очень помогла с ВП (вывод не пустого массива заполненных произвольных полей).

Ответить