1


我有一个字符串数组,这些字符串中有空格。例如:

$arr = array('bob', 'john smith', 'grease monkey', 'etc');

为什么当我尝试时$str = implode('|', $arr);,它会停在它找到的第一个空间?我留下了一个像这样的字符串:

$str = "bob|john";


如果我尝试:

$arr = array('bob', 'john', 'grease monkey', 'etc');

并内爆,我得到:

$str = "bob|john|grease";

编辑:我实际上是在尝试将其设置为隐藏字段的值:

<input id="hidLblFields" name="hidLblFields" type="text" value=<?php echo implode('|', $myFields);?> />
4

4 回答 4

3

编辑:我实际上是在尝试将其设置为隐藏字段的值:

<input id="hidLblFields" name="hidLblFields" type="text" value=<?php echo implode('|', $myFields);?> />

您需要引用该value属性:

<input .. type="text" value="<?php echo implode('|', $myFields);?>" />

如果不这样做,呈现的 HTML 看起来像:

<input type="text" value=bob|john|grease monkey />

浏览器将按以下方式处理:

<input type="text" value="bob|john|grease" monkey />
于 2011-06-01T23:00:15.240 回答
2

您的代码中的其他地方一定有错误, implode() 不会在空格上中断。

$arr = array('bob', 'john', 'grease monkey', 'etc');
$str = implode('|', $arr);
var_dump($str);
// gives
string(26) "bob|john|grease monkey|etc"

至于您的编辑,您需要在 html 中的属性周围加上引号:

<input id="hidLblFields" name="hidLblFields" type="text" value="<?php echo implode('|', $myFields);?>" />
于 2011-06-01T22:54:01.983 回答
1

这根本不可能。你有一些其他的功能做一些其他的操作

于 2011-06-01T22:52:04.383 回答
0

为我工作。尽量不要重新分配你的变量:

<?php 
$str = array('bob', 'john smith', 'grease monkey', 'etc');
$new_str = implode('|', $str);

echo $new_str;
?>
于 2011-06-01T22:54:47.627 回答