Intereting Posts
Как получить slickgrid div для изменения размера таблицы Каков тип этой строки? а: 1: {s: 2: «ан»;} Бинарное хранилище MySQL с использованием файловой системы BLOB VS OS: большие файлы, большие количества, большие проблемы PHP – получить base64 img строку декодировать и сохранить как jpg (в результате пустого изображения) Доступность сеанса в представлении Как генерировать выдержку с большинством искомых слов в PHP? Как я могу ограничить ограничение open_basedir PHP? Как загрузить последний файл на FTP с помощью PHP? Нужно ли избегать $ _SESSION перед тем, как войти в SQL-запрос? oci_bind_by_name и to_date PHP / OCI / Oracle Отправьте параметр param в промежуточное ПО как аргумент Laravel Неустранимая ошибка: Недостаточно памяти (выделено 1134559232) (попытался выделить 32768 байт) в X: \ wamp \ www \ xxx Как отобразить или просмотреть загруженное изображение после отправки на PHP без сохранения базы данных? показ pdf на веб-сайте, но не загружаемый Найти URL-адрес и получить IP-адрес веб-сайта после перенаправления

php удалить «пустые» значения в массиве

Я пытаюсь очистить массив от пустых значений, используя следующую функцию:

function remove_empty_cells($data) { $findthis = array("/\r\n/u", "/\n/u", "/\r/u", "/\s+/u", "~\x{00a0}~"); for($i=0; $i<count($data); $i++) { $data[$i] = preg_replace($findthis, " ", $data[$i]); $data[$i] = htmlspecialchars_decode(htmlspecialchars($data[$i], ENT_SUBSTITUTE, 'UTF-8')); if (empty($data[$i]) || mb_strlen($data[$i]) < strlen($data[$i]) || is_null($data[$i]) || $data[$i] = " " || $data[$i] = "" || $data[$i] == "0") { array_splice($data, $i, 1); };//end if };//end for return $data; };//end func 

Пустые значения не исчезают, я не могу их идентифицировать.

данные:

 array ( 0 => ' ', 1 => 'BEGIN:VCARD ', 2 => ' ', 3 => ' ', 4 => ' ', 5 => ' ', 6 => ' ', 7 => 'VERSION:2.1 ', 

… может быть какая-то проблема с кодировкой или что-то в этом роде. Это не похоже на многобайтовые символы. Результат я получаю:

 array ( 0 => 'BEGIN:VCARD ', 1 => ' ', 2 => ' ', 3 => 'VERSION:2.1 ', 

Вы можете использовать функцию PHP array_filter() чтобы удалить пустые значения с помощью функции обратного вызова, как array_filter() ниже

 <?php $array = array("sampe1", "\n ", " ", "sample2", null, "sample4", "rajesh", "suresh", "test", ""); $result = array_filter($array, function($v){ return trim($v); }); var_dump($result); $res = array_slice($result); var_dump($res); ?> 

Это напечатает:

 array(6) { [0]=> string(6) "sampe1" [3]=> string(7) "sample2" [5]=> string(7) "sample4" [6]=> string(6) "rajesh" [7]=> string(6) "suresh" [8]=> string(4) "test" } 

 array(6) { [0]=> string(6) "sampe1" [1]=> string(7) "sample2" [2]=> string(7) "sample4" [3]=> string(6) "rajesh" [4]=> string(6) "suresh" [5]=> string(4) "test" } 

SYNTAX – массив array_filter (массив $ array [, callable $ callback [, int $ flag = 0]])

Не очень уверен, что вы сделали в этом коде, но вот что-то, что может удалить пустые элементы из php-массива

Фрагмент кода

 <?php $array = array("apple", "", 2, null, -5, "orange", 10, false, ""); var_dump($array); echo "<br>"; // Filtering the array $result = array_filter($array); var_dump($result); ?> 

Вы можете использовать функцию PHP array_filter() чтобы удалить пустые значения

 <?php $array = array("sampe1", "", "sample2", null, "sample4", "rajesh", "suresh", "test", ""); var_dump($array); echo "<hr/>"; $result = array_filter($array); var_dump($result); ?> 

Это напечатает:

 array(9) { [0]=> string(6) "sampe1" [1]=> string(0) "" [2]=> string(7) "sample2" [3]=> NULL [4]=> string(7) "sample4" [5]=> string(6) "rajesh" [6]=> string(6) "suresh" [7]=> string(4) "test" [8]=> string(0) "" } 

 array(6) { [0]=> string(6) "sampe1" [2]=> string(7) "sample2" [4]=> string(7) "sample4" [5]=> string(6) "rajesh" [6]=> string(6) "suresh" [7]=> string(4) "test" 

Удаление пустых массивов в PHP, оставив отверстия в массиве.

Быстрый способ удаления пустых элементов из массива использует array_filter без функции обратного вызова. Это также удалит 0s (ноль).

$ myArray = array_filter ($ myArray);

Кроме того, array_diff позволяет вам решить, какие элементы сохранить. В следующем примере удаляются только пустые строки, но сохраняются 0

$ myArray = array_diff ($ myArray, array (''));

Удаление пустых слотов в PHP и сжатие массива.

Обе функции оставляют «пробелы», где раньше были пустые записи. Вы можете видеть это ниже, где индексы [1] и [3], а не [0] и [1].

$ myArray = array (0, 'red', '', 'blue'); print_r (array_filter ($ myArray)); Массив ([1] => 'красный' [3] => 'синий')

print_r (array_diff ($ myArray, array (''))); Массив ([0] => 0 [1] => 'красный' [3] => 'синий')

array_slice может удалить эти пробелы:

$ myArray = array (0, 'red', '', 'blue'); $ myArray = array_filter ($ myArray); print_r (array_slice ($ myArray, 0)); Массив ([0] => 'red' [1] => 'синий')

так что теперь для вашего cas, Example

$ arr = ['', 'BEGIN: VCARD', '', '', '', '', '', 'VERSION: 2.1']; // начальный массив print_r ($ arr); $ myArray = array_filter ($ arr); print_r (array_slice ($ myArray, 0));

inital output:

Массив ([0] => [1] => BEGIN: VCARD [2] => [3] => [4] => [5] => [6] => [7] => ВЕРСИЯ: 2.1)

окончательный выход:

Массив ([0] => BEGIN: VCARD [1] => ВЕРСИЯ: 2.1)