1

我有一个存储在 PHP 变量中的动态值。该变量包含一串数据,表示单击了哪些复选框。它像这样返回:Option1,Option2,Option3,Option4.....

我想去掉逗号,所以它只是 Option1 Option2 Option3 Option4....

我的代码:

<?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;

很快....

4

5 回答 5

5

还有一些你没有包括在内的东西。您发布的代码完美地完成了它的工作。如果您仍然看到逗号,那么这里有其他东西在起作用。

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

die这是您确定的最佳时机。

<?php
die(str_replace(',', '',the_field('type_of_work')));
?> 
于 2012-05-08T19:22:17.623 回答
2

尽管您提供的代码应该可以完美运行,但我建议您改用它:

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

这将把它变成一个值数组。trim()单独设置每个值也是一个好主意。

所以,而不是:

$item = 'Item1 Item2 Item3';

你会得到一个数组:

$item = array('Item1', 'Item2', 'Item3'); // Assuming each value is `trim()`ed
于 2012-05-08T19:29:50.150 回答
0

正则表达式替换

preg_replace("/,/", "", $string);
于 2012-05-08T19:22:48.190 回答
0

您可以尝试将它们爆炸成一个数组,然后将它们内爆回来......

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

super cali fragilistic expi alidocious


implodeexplode的文档。

于 2012-05-08T19:24:50.703 回答
0

这是诀窍:

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

或者简单地说:

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

因为 get_field 是一个数组。

于 2013-09-20T19:58:26.837 回答