2012-05-16 75 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