簡體   English   中英

第二行二維數組中的內爆逗號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM