2012-05-16 34 views
3

林有很多麻烦,我现在知道为什么。从阵列中的每个值中删除破折号,然后重建阵列

我有一个动态数组,可以由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); 
    } 

当数组$过滤器运行时,我需要删除任何从任何单个数组值中破折号并用空格替换它们。

本步骤是一些时髦的结果:

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); 
    } 

什么是做这种正确的方法是什么?

谢谢

回答

4

所有的爆炸和爆炸并不是真的有必要。你也不需要创建一个新的数组。你可以通过你的价值参照周期,并修改它们在一个班轮:

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

$array = str_replace("-", " ", $array); 

,输出:

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

演示:http://codepad.org/up0VoZ21

+3

您可以直接调用'str_replace()函数'在阵列上。 – salathe

+0

工作很好。谢谢! –

+2

@salathe非常好的建议。我不知道你可以提供一个数组作为主题,并且该函数将会对其中的每个值作用。很酷。 – Sampson