Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数组中的每个值中删除破折号,然后重新生成数组_Php_Codeigniter - Fatal编程技术网

Php 从数组中的每个值中删除破折号,然后重新生成数组

Php 从数组中的每个值中删除破折号,然后重新生成数组,php,codeigniter,Php,Codeigniter,我在这方面遇到了很多麻烦,现在我知道为什么了 我有一个动态数组,它可以由1个或多个值组成: [array] => Array ( [0] => blurb [1] => news [2] => entertainment [3] => sci [4] => diablo-3 ) 这是我的模型 public function create_session_f

我在这方面遇到了很多麻烦,现在我知道为什么了

我有一个动态数组,它可以由1个或多个值组成:

[array] => Array
    (
        [0] => blurb
        [1] => news
        [2] => entertainment
        [3] => sci
        [4] => diablo-3
    )
这是我的模型

    public function create_session_filter($filters)
    {
        $array = split("\|", $filters);
        $filter['filter'] = $array;
        $this->session->unset_userdata('filter');
        $this->session->set_userdata($filter);
    }
运行数组$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);
    }
正确的方法是什么


谢谢

所有的爆炸和内爆都不是真的需要。您也不需要创建新阵列。您可以通过引用循环查看值,并在一行中修改它们:

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

$array = str_replace( "-", " ", $array );
哪些产出:

Array
(
  [0] => blurb
  [1] => news
  [2] => diblo 3
)

演示:

您可以在数组上调用
str\u replace()
,这是一个很好的建议。我不知道您可以提供一个数组作为主题,然后函数会作用于其中的每个值。非常酷。@JonathanSampson很乐意帮忙:-)