Как я могу удалить все пустые значения, когда я взрываю строку с помощью PHP?

Я задавался вопросом, как я могу удалить все пустые значения, когда я взрываю строку с помощью PHP, например, позволяет, говорят, что пользователь входит ",jay,john,,,bill,glenn,,,"?

Заранее спасибо за справку.

Вот часть кода, который взрывается, пользователь отправил значения.

$tags = explode(",", $_POST['tag']);
31
задан snag 7 August 2010 в 21:53
поделиться

2 ответа

Например. через array_filter () или с помощью параметра PREG_SPLIT_NO_EMPTY в preg_split ()

<?php
// only for testing purposes ...
$_POST['tag'] = ",jay,john,,,bill,glenn,,0,,";

echo "--- version 1: array_filter ----\n";
// note that this also filters "0" out, since (bool)"0" is FALSE in php
// array_filter() called with only one parameter tests each element as a boolean value
// see http://docs.php.net/language.types.type-juggling
$tags = array_filter( explode(",", $_POST['tag']) ); 
var_dump($tags);

echo "--- version 2: array_filter/strlen ----\n";
// this one keeps the "0" element
// array_filter() calls strlen() for each element of the array and tests the result as a boolean value
$tags = array_filter( explode(",", $_POST['tag']), 'strlen' ); 
var_dump($tags);

echo "--- version 3: PREG_SPLIT_NO_EMPTY ----\n";
$tags = preg_split('/,/', $_POST['tag'], -1, PREG_SPLIT_NO_EMPTY);
var_dump($tags);

выводит

--- version 1: array_filter ----
array(4) {
  [1]=>
  string(3) "jay"
  [2]=>
  string(4) "john"
  [5]=>
  string(4) "bill"
  [6]=>
  string(5) "glenn"
}
--- version 2: array_filter/strlen ----
array(5) {
  [1]=>
  string(3) "jay"
  [2]=>
  string(4) "john"
  [5]=>
  string(4) "bill"
  [6]=>
  string(5) "glenn"
  [8]=>
  string(1) "0"
}
--- version 3: PREG_SPLIT_NO_EMPTY ----
array(5) {
  [0]=>
  string(3) "jay"
  [1]=>
  string(4) "john"
  [2]=>
  string(4) "bill"
  [3]=>
  string(5) "glenn"
  [4]=>
  string(1) "0"
}
84
ответ дан 27 November 2019 в 21:41
поделиться
//replace multiple commas
$tags = preg_replace('/,+/', ',', $_POST['tag']);
//explode
$tags = explode(',', $tags);
0
ответ дан 27 November 2019 в 21:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: