我需要連接不確定數量的字符串,我想在兩個相鄰字符串之間的空格。像這樣a b c d e f
。最好的方法來連接PHP中的字符串與空格之間
另外我不希望任何前導或尾隨空格,在PHP中這樣做的最好方法是什麼?
我需要連接不確定數量的字符串,我想在兩個相鄰字符串之間的空格。像這樣a b c d e f
。最好的方法來連接PHP中的字符串與空格之間
另外我不希望任何前導或尾隨空格,在PHP中這樣做的最好方法是什麼?
考慮到你擁有所有這些字符串收集到一個數組,一個辦法做到這一點,可以海槽的foreach一句話:
$res = "";
foreach($strings as $str) {
$res.= $str." ";
}
if(strlen($res > 0))
$res = substr($res,-1);
這樣你可以有超過對未來變化的過程控制。
當你有'implode()'時聽起來有點矯枉過正。 – kapa
耶,我知道,但我通常喜歡讓事情打開並受控制,這讓我可以在面對未知數據類型時隨時進行更改,因爲現在它是一個字符串數組,但您永遠不知道在開發過程中會發生什麼,所以我喜歡有這樣的自由。就我所知,我總是有時間將它改爲簡單的內爆/連接。 – holographix
您的解決方案(使用'foreach')假定字符串在一個數組中。 'implode'的使用也會假定這些字符串在一個數組中。我沒有看到這裏的自由,我只看到一堆不必要的行減少了可讀性。 – kapa
$strings = array(" asd " , NULL, "", " dasd ", "Dasd ", "", "", NULL);
function isValid($v){
return empty($v) || !$v ? false : true;
}
$concatenated = trim(implode(" ", array_map("trim", array_filter($strings, "isValid"))));
//"asd dasd Dasd"
function concatenate()
{
$return = array();
$numargs = func_num_args();
$arg_list = func_get_args();
for($i = 0; $i < $numargs; $i++)
{
if(empty($arg_list[$i])) continue;
$return[] = trim($arg_list[$i]);
}
return implode(' ', $return);
}
echo concatenate("Mark ", " as ", " correct");
簡單的方法是:
$string="hello" . " " . "world";
我只想補充到deviousdodo的回答,如果有這樣的情況,有數組中的空字符串,你不希望這些出現在連接字符串中,比如「a,b ,, d ,, f」,那麼最好使用以下代碼:
$ str = implode(',',array_filter(array('a', 'b','','d','','f')));
你如何存儲這些字符串?他們在陣列中嗎?或在單獨的變量? – kapa
它們是單獨的變量,如果沒有設置vriable或空字符串,我不希望它包含在連接字符串中。 – freshest
@freshest變量是如何生成的?你不能把值放入數組而不是自由變量嗎? – deviousdodo