2012-05-08 207 views
1

我有一個動態值被存儲在PHP變量中。該變量保存一個數據字符串,表示點擊了哪些複選框。它返回像這樣:選項,選項2,選項3,選項4 .....從PHP刪除逗號

我想去掉逗號所以它只是選項1選項2選項3選項....

我的代碼:

<?php 
    $type = the_field('type_of_work'); 
    $type = str_replace(",", "",$type); 
    echo $type; 
?> 

由於某些原因,逗號仍然呈現。任何想法爲什麼或如何解決這個問題?大家知道,the_field('type_of_work')是一種從wordpress'後端拉取高級自定義字段的方法,但不應該與這個問題相關,因爲它會用逗號成功重新調用一個字符串。有什麼想法嗎?

更新:我要對這個以不同的方式,像這樣:

if(in_array('brand-id', get_field('type_of_work'))): 
    echo "brand-id"; 
endif; 

echo " "; 

if(in_array('print', get_field('type_of_work'))): 
    echo "print"; 
endif; 

等等....

+0

可能的字符編碼問題? – davidethell

+0

也許......不確定在這一點 – JCHASE11

+0

你的編輯有點令人費解,因爲它不能更好地解釋問題。你能否爲'$ type'或'type_of_work'提供一些樣本值? – Lix

回答

5

還有別的東西你是不包括。你發佈的代碼完美無缺。如果你仍然看到逗號,那麼其他的東西在這裏扮演一個角色。

<?php 
    $type = the_field('type_of_work'); 
    $type = str_replace(",", "",$type); 
    echo $type; 
?> 

這是知名的時間die所以你知道肯定。

<?php 
die(str_replace(',', '',the_field('type_of_work'))); 
?> 
+0

我想你是對的....還有其他事情正在發生。看起來這是WordPress的自定義字段。但它很奇怪,因爲它確實會返回一個基本的字符串... – JCHASE11

+1

@xeo - 不要那麼戲劇化:P – Lix

0

正則表達式替換

preg_replace("/,/", "", $string); 
+6

這基本上是作者的發佈代碼的低效版本。 –

0

你可以試試他們爆炸到一個數組,然後爆他們回來了...

$split = "super,cali,fragilistic,expi,alidocious"; 
$arr = explode(",",$split); 
$finalStr = implode(" ",$arr); 
echo $finalStr; 

super cali fragilistic expi alidocious


Google文檔implodeexplode

2

雖然你提供的代碼應該很好地工作,可我建議用這個代替:

$type = explode(',', $type); 

這將變成值的數組。這也是一個好主意,每個值分別爲trim()

因此,而不是:

$item = 'Item1 Item2 Item3'; 

你會得到的數組:

$item = array('Item1', 'Item2', 'Item3'); // Assuming each value is `trim()`ed 
+0

是的,沒有像所有其他答案一樣工作!我要回到這裏的繪圖板! – JCHASE11

+0

@ JCHASE11,提供更多信息(準確使用的代碼,也許?),我們應該能夠幫助你更好:) – 0b10011

0

這是招:

<?php 
$type = get_field('type_of_work'); 
$type = implode(' ', $type); 
echo $type; 
?> 

或者乾脆:

<?php echo implode(' ', get_field('type_of_work')); ?> 

因爲get_field是一個數組。