[英]Implode comma in the i-th row of two-dimensional array
數組$solution
是二維的。 我需要將其內容保存到SQL表。 但是,在保存之前,我需要檢查$solution[i][0]
屬於查詢結果SELECT num_arr FROM Schedule WHERE num_arr<>''
。
問題在於$vals = implode(...)
。 如何在數組$solution
的第i行中內爆逗號? 現在這一行導致字符串0,0,0,0
而不是正確的值。
$columns_land = array("`num_arr`","`start`","`fin`","`way`");
$cols_land = implode(",",$columns_land);
for($i=0; $i<sizeof($solution); $i++) {
$vals = implode(',', array_map('implode_comma', $solution[$i]));
query_land = "INSERT INTO `Sequence` (" . $cols_land . ")
VALUES " . $vals . "
WHERE num_arr='".$solution[$i][0]."'
AND num_arr IN (SELECT num_arr FROM Schedule WHERE num_arr<>'')";
$result_land = execute_query($query_land);
}
function implode_comma($arr) {
return '(' . implode(',', $arr) . ')';
}
這句話讓我困惑:
$vals = implode(',', array_map('implode_comma', $solution[$i]));
由於implode_comma()
需要一個數組,因此$solution[$i]
每個項目也必須是一個數組; 但這意味着$solutions
本身必須是一個三維數組。
我想你可以在你的循環中寫這個:
$vals = implode(',', $solution[$i]);
$query_land = "INSERT INTO `Sequence` ($cols_land)
VALUES ($vals)
WHERE num_arr='".$solution[$i][0]."'
AND num_arr IN (SELECT num_arr FROM Schedule WHERE num_arr<>'')";
$result_land = execute_query($query_land);
順便說一句,你應該正確地逃避你在SQL中使用的變量,但我無法分辨你正在使用哪個數據庫層,所以我把它留給你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.