php - 为什么foreach只运行一次?
问题描述:
我确实在寻找相当一段时间,但我不知道要改变什么。我的php代码获得一个数组,我希望它插入到mysqlDB中。问题是它只运行一次foreach循环。为什么它没有运行?php - 为什么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
没有进一步的错误。谢谢你的帮助!
答
后,您需要它们放在括号{}否则它将循环旁边的第一线。使用下面
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;
}
希望这有助于你
答
foreach循环需要被括在大括号{}否则它将循环只有一行foreach语句
Doesn't需要实际大括号括起来,您可以使用其他类似语法:'foreach():endforeach;' – Daan 2015-02-10 13:44:39