как удалить элемент nbsp из массива - PullRequest
0 голосов
/ 02 марта 2019

У меня есть элементы в моем массиве php, которые содержат элементы, я пытаюсь удалить элементы, которые содержат только пробел (), поэтому я применяю к моему массиву:

        $steps = array_map( 'html_entity_decode', $steps);
        $steps = array_map('trim',$steps);
        $steps = array_filter($steps, 'strlen'); //(i try also array_filter($steps);

, но элементы находятся.

Любая идея, пожалуйста

1 Ответ

0 голосов
/ 02 марта 2019

Попробуйте это:

/**
 * Function to strip away a given string
 **/
function remove_nbsp($string){
    $string_to_remove = " ";
    return str_replace($string_to_remove, "", $string);
}

# Example data array
$steps = array("<p>step1</p>", "<p>step2</p>", "<p>step3</p>", "<p>&nbsp;</p>", "&nbsp;", "<p>&nbsp;</p>",  "<p>step4</p>");

$steps = array_map("strip_tags", $steps);
//Strip_tags() will remove the HTML tags
$steps = array_map("remove_nbsp", $steps);
//Our custom function will remove the &nbsp; character
$steps = array_filter($steps);
//Array_filter() will remove any blank array values

var_dump($steps);

/**
 * Output:
array(4) {
  [0]=>
  string(5) "step1"
  [1]=>
  string(5) "step2"
  [2]=>
  string(5) "step3"
  [6]=>
  string(5) "step4"
}
*/

Возможно, вам даже будет проще сделать foreach ():

foreach($steps as $dirty_step){
    if(!$clean_step = trim(str_replace("&nbsp;", "", strip_tags($dirty_step)))){
        //Ignore empty steps
        continue;
    }
    $clean_steps[] = $clean_step;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...