簡體   English   中英

PHP-為什么foreach只運行一次?

[英]php - Why foreach only runs once?

我確實在搜索了很長時間,但我不知道要更改什么。 我的PHP代碼獲取一個數組,我希望將其插入到mysqlDB中。 問題是它只運行一次foreach循環。 為什么不運行?

public function insert_tags($projektID, $tags) {
    print_r($tags);
    foreach($tags as $tag)
        $this->db->set('name', $tag);
        $this->db->insert('tags');
        echo $tag;
        $tag_ID = $this->db->insert_id();
        echo $tag_ID;
        if ($tag_ID != 0) {
            $this->db->set('id', $projektID);
            $this->db->set('tag_ID', $tag_ID);
            $this->db->insert('hat_tags');
        }
}

它呼應:

Array
(
    [0] => tag1
    [1] => tag2
)
tag2 147

沒有進一步的錯誤。 謝謝你的幫助!

foreach循環需要用大括號{}括起來,否則它將僅在foreach語句之后循環一行

您需要將它們括在{}括號中,否則它將循環其旁邊的第一行。 使用下面的代碼

public function insert_tags($projektID, $tags) {
    print_r($tags);
    foreach($tags as $tag){
        $this->db->set('name', $tag);
        $this->db->insert('tags');
        echo $tag;
        $tag_ID = $this->db->insert_id();
        echo $tag_ID;
        if ($tag_ID != 0) {
            $this->db->set('id', $projektID);
            $this->db->set('tag_ID', $tag_ID);
            $this->db->insert('hat_tags');
        }
    }

}

或者您可以將其與endforeach一起使用

public function insert_tags($projektID, $tags) {
    print_r($tags);
    foreach($tags as $tag):
        $this->db->set('name', $tag);
        $this->db->insert('tags');
        echo $tag;
        $tag_ID = $this->db->insert_id();
        echo $tag_ID;
        if ($tag_ID != 0) {
            $this->db->set('id', $projektID);
            $this->db->set('tag_ID', $tag_ID);
            $this->db->insert('hat_tags');
        }
    endforeach;

}

希望這對您有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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