如何以正确的方式遍历多维关联数组

时间:2014-02-27 13:51:50

标签: php

我正处于我的脚本中,我想在循环关联数组后将数据插入到我的数据库中。

代码工作到目前为止,但由于我是编程新手,我想知道是否有更有效的替代方式来做我正在做的事情,因为我将在我的阵列增长时添加更多的elseif,以及事实我在每次迭代后查询我的数据库。

foreach($database as $key=>$value) {

foreach($value as $field => $cell){

    if ($field =='itemid') {
        echo "the item id is $cell";
        $col1 = $cell ;
    }
    elseif ($field =='title') {

        echo "the title is $cell";
        $col2 = $cell;
    }
    elseif ($field =='starttime') {

        echo "the start time is $cell";
        $col3 = $cell;
    }

}
$query = "INSERT INTO cordless_drill(itemid,title,starttime) VALUES ('$col1','$col2','$col3')";
mysqli_query($dbc,$query);

}

1 个答案:

答案 0 :(得分:0)

// here is a code snippet

// $db = new MyDbClass();

// $db->insert->('cordless_drill', $cell); // where $cell is holding key/value pairs 

public function insert($table, $obj) {
    return $this->query("INSERT INTO ".$table.$this->obj2KeyValue($obj));
}

private function obj2KeyValue($obj) {
    $i = count($obj);
    $k = ""; $v = "";       
    $init = false;
    $sql = " SET ";
    while (list($k, $v) = each($obj)) {
        if ($v != "") {
            $v = $this->mysqli->real_escape_string($v);
            if ($init) $sql .= ", ";
            else $init = true;
            $sql .= $k.'="'.$v.'"';
        }
    }
    return $sql;

}


public function query($q) {
    if ($this->debug) {
        $logFile = "sql_query.log";
        $handle = fopen($logFile, "a+");
        $data = $q."\n";
        fwrite($handle, $data);
        fclose($handle);
    }       
    return $this->mysqli->query($q);
}