2012-05-08 257 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是一个数组。