2015-04-06 36 views
1

我有這樣的如何申請RTRIM函數在一個數組在PHP

Array 
(
    [1] => Hollywood » 
    [2] => 3D Animation » Hollywood » 
    [3] => Natural Beauty » Hollywood » 3D Animation » 
    [4] => Song » Hollywood » 
    [5] => Car » Hollywood » 3D Animation » 
    [6] => Folk Song » Hollywood » Song » 
    [7] => Modern Song » Hollywood » Song » 
) 

數組現在我想刪除最後»(>>)。我認爲它可以通過rtrim功能

實例進行

rtrim("Modern Song » Hollywood » Song »", "»"); 

現在我怎樣才能在陣列適用rtrim沒有任何循環。

我有嘗試,但我不知道如何傳遞的第二個參數中rtrim功能

$restult = array_map('rtrim', $arrData); 

我也嘗試

$restult = array_map('rtrim', $arrData, '»'); 

但第三個參數必須是數組

Array 
    (
     [1] => Hollywood 
     [2] => 3D Animation » Hollywood 
     [3] => Natural Beauty » Hollywood » 3D Animation 
     [4] => Song » Hollywood 
     [5] => Car » Hollywood » 3D Animation 
     [6] => Folk Song » Hollywood » Song 
     [7] => Modern Song » Hollywood » Song 
    ) 

解決方案cakephp是首選。

+1

創建一個'function rtrimRaquo($ v){return rtrim($ v,「»」)}'並將其名稱傳遞給'array_map':'array_map(「rtrimRaquo」,$ arrData) 。 – 2015-04-06 07:09:13

+0

是的,我已經嘗試過,但我怎麼能在'cakephp'中執行 – 2015-04-06 07:10:42

+1

有人給出了答案,那是對的。當我要接受這個答案時,我發現它已被刪除。我不知道他爲什麼刪除答案。無論如何感謝他幫助我。 :) – 2015-04-06 07:27:01

回答

0

你可以那樣做:

$arr = [ 
    'Hollywood » ', 
    '3D Animation » Hollywood » ', 
    'Natural Beauty » Hollywood » 3D Animation » ', 
    'Song » Hollywood » ', 
]; 

function trimRaquo($what) { 
    return rtrim($what," »"); 
} 

$arr2 = array_map('trimRaquo',$arr); 

echo '<pre>'; 
var_dump($arr2); 
echo '</pre>'; 

我不知道爲什麼,但是當我在符號的左側離開了額外的空間:"»"代替" »"的功能將不會被應用。我會冒這是因爲" »" !== "»"rtrim()尋找完全匹配。

也寫"&raquo;"似乎不工作,無論是在單或雙引號,所以我使用的字符"»"

我不知道的CakePHP的,但這種用這樣的基本功能是非常框架不可知的...