我有一个字符串数组,这些字符串中有空格。例如:
$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);?> />
答案 0 :(得分: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 />
答案 1 :(得分: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);?>" />
答案 2 :(得分:1)
这根本不可能。您还有一些其他功能正在执行其他操作
答案 3 :(得分:0)
为我工作。尽量不要重新分配变量:
<?php
$str = array('bob', 'john smith', 'grease monkey', 'etc');
$new_str = implode('|', $str);
echo $new_str;
?>