現在我有如何遞歸循環呢?
Array(1 => Array("aaa","bbb","ccc"))
Array(2 => Array("eee","fff","ggg","hhh"))
我想打一個字符串
$a = "ST_Union(ST_Union('aaa','bbb'),'ccc')"
$b = "ST_Union(ST_Union(ST_Union('eee','fff'),'ggg'),'hhh')"
我怎麼能在PHP這樣做呢?
現在我有如何遞歸循環呢?
Array(1 => Array("aaa","bbb","ccc"))
Array(2 => Array("eee","fff","ggg","hhh"))
我想打一個字符串
$a = "ST_Union(ST_Union('aaa','bbb'),'ccc')"
$b = "ST_Union(ST_Union(ST_Union('eee','fff'),'ggg'),'hhh')"
我怎麼能在PHP這樣做呢?
UPD:更新溶液一點,現在更簡單和可讀:
function wrapWithUnion(array $params)
{
if (is_null($params[0])) {
return "'{$params[1]}'";
}
return "ST_Union({$params[0]},'{$params[1]}')";
}
$arr = array("eee","fff","ggg","hhh");
$result = null;
foreach ($arr as $val) {
$result = wrapWithUnion(array($result, $val));
}
var_dump($result);
在PHP中,您可以使用implode()函數,該函數將數組元素連接到一個字符串中,並由您選擇的「膠水」分隔開。
實施例:
$arr1 = Array("aaa","bbb","ccc");
$str1 = implode(",",$arr1);
//aaa,bbb,ccc
$str2 = implode($arr1);
//aaabbbccc
我只是想看看這個案例的一些PHP代碼示例,順便說一句,謝謝你的關鍵。 –
嘗試此。
function wrapWithUnion($input)
{
$template = 'ST_Union(%1$s, %2$s)';
$output = "'" . array_shift($input) . "'";
while ($item = array_shift($input))
{
$output = sprintf($template, $output, "'" . $item . "'");
}
return $output;
}
但你想要做的,如果輸入數組中有不到2項是什麼?您可能無法按照您的希望處理這些功能。
我使用count()來處理這個問題。 –
這意味着你永遠不會在這樣的數組上執行這些操作嗎?在這種情況下,這個功能應該適合你。對不起,它不使用遞歸。 – Okonomiyaki3000
順便說一句,感謝您的參與我的問題:) –
什麼決定嵌套? – Sampson