php - 插入嵌套的for循环(我做错了什么)
问题描述
我的模特
在 content_for 表中仅插入 2 行
public function add($data, $content_role = array()) {
$this->db->insert_batch('contents', $data);
$count = count($data);
$insert_id = $this->db->insert_id(); // Returning ID
$last_id = $insert_id + ($count-1);
$f_data = $insert_id;
$l_data = $last_id;
if (isset($content_role) && !empty($content_role)) {
while($f_data <= $l_data) {
$total_rec = count($content_role);
for ($i = 0; $i < $total_rec; $i++) {
$content_role[$i]['content_id'] = $insert_id;
}
$f_data++;
}
$this->db->insert_batch('content_for', $content_role);
}
}
解决方案
if 语句中的条件永远不会为真。当您调用该函数时,您正在初始化一个空数组。它永远不会被设置并且总是空的。如果您要这样做,甚至没有理由检查它。
<?php
$content_role = array();
if (isset($content_role) && !empty($content_role)) {
echo 'You will never see me';
}else{
echo 'Never set and always empty'; //You'll only ever get this
}
?>
推荐阅读
- reactjs - 如何在没有组件安装的情况下在具有 setState 的函数内部调用函数?
- assembly - 在 Hack 汇编代码中初始化一个数组
- google-apps-script - 如果存在重复的文件夹名称Google表单如何根据上传的文件自动重命名文件夹
- css - CSS display flex 防止 colspan 在动态显示/隐藏表格行时按预期工作
- php - 如何在我的时间码中修复这个非常令人沮丧的时间错误?
- python - 验证 tkinter 输入框中的数据。如果它的数字或字母或电子邮件
- java - 缺少用于 java 源选项卡的 Netbeans
- java - 当内存达到特定值时,Kubernetes会捕获内存转储?
- postgresql - 带有用户登录系统的烧瓶应用程序,但无法同时处理两个用户
- android - 依赖 gradle android studio