从数组中的每个值中删除破折号,然后重建数组

Ric*_*son 3 php codeigniter

我对此有很多麻烦,现在我确定为什么。

我有一个动态数组,可以包含1个或多个值:

[array] => Array
    (
        [0] => blurb
        [1] => news
        [2] => entertainment
        [3] => sci
        [4] => diablo-3
    )
Run Code Online (Sandbox Code Playgroud)

这是我的模特

    public function create_session_filter($filters)
    {
        $array = split("\|", $filters);
        $filter['filter'] = $array;
        $this->session->unset_userdata('filter');
        $this->session->set_userdata($filter);
    }
Run Code Online (Sandbox Code Playgroud)

运行数组$ filters时,我需要从任何单个数组值中删除所有破折号并将其替换为空格。

这产生了一些时髦的结果:

    public function create_session_filter($filters)
    {
        $filterarray = array();
        $array = split("\|", $filters);
        foreach ($array as $filter) 
        {
            print_r($filter);
            $filterspace = implode(' ', explode('-', $filter));
            $filterarray = array_push($filterarray, $filterspace);
        }
        $filter['filter'] = $filterarray;
        $this->session->unset_userdata('filter');
        $this->session->set_userdata($filter);
    }
Run Code Online (Sandbox Code Playgroud)

正确的方法是什么?

谢谢

Sam*_*son 5

所有爆炸和内爆并不是真正必要的。您也不需要创建新的数组。您可以通过引用遍历您的值,并一口气修改它们:

$array = array( "blurb", "news", "diblo-3" );

$array = str_replace( "-", " ", $array );
Run Code Online (Sandbox Code Playgroud)

哪个输出:

Array
(
  [0] => blurb
  [1] => news
  [2] => diblo 3
)
Run Code Online (Sandbox Code Playgroud)

演示:http//codepad.org/up0VoZ21

  • 您可以在数组上调用`str_replace()`。 (3认同)
  • @salathe极好的建议。我不知道您可以提供一个数组作为主题,然后该函数将作用于其中的每个值。很酷。 (2认同)