数组相关笔记
- 字符串转数组
explode(‘分割字符’,‘被分割的参数’);
$likes = explode(',', $likes);
- 数组转字符串
implode(‘分割字符’,‘被分割参数’)
$likes = implode(',', $likes), //将数组转换为字符串
- 对象转数组
//json_encode()函数可以将对象,数组的数据格式转换为json格式的数据
//json_decode()函数可以将json格式的数据转换为对象,数组,转换为数组要加true
$addr = json_decode(json_encode($address), true);
- 数组追加元素
// 将$busid 追加到 $likes数组中
array_push($likes, $busid);
- 判断元素是否在数组当中
b u s i d 是否在 busid 是否在 busid是否在likes中,如果存在 返回true
in_array($busid, $likes)
- 根据判断结果,获取数组元素下标
查找元素 b u s i d 是否在 busid是否在 busid是否在like中,如果在 则返回$busid的数组下标
//查找元素$busid是否在$like中,如果在 则返回$busid的数组下标
$index = array_search($busid, $like);
- 删除数组中的某个元素
根据 in_array() 作为判断条件 array_search()找到元素的下标位置 利用找到的下标进行删除
unset($likes[$key]); //删除$likes数组中的第$key个元素
- 具体应用
//查询评论中点赞字段
$comment = $this->CommentModel->where($where)->find();
if (!$comment) {
$this->error("评论不存在");
exit;
}
//字符串转数组
$likes = trim($comment['like']);
$likes = explode(',', $likes);
//判断当前用户是否在点赞列表
if (in_array($busid, $likes)) { //取消点赞
// 取消点赞 1.利用array_search()获取数组下标
// $index = array_search($busid, $like);
// 删除掉元素
// unset($like[$index]);
foreach ($likes as $key => $item) {
//2.利用遍历获取数组元素下标
if ($item == $busid) {
unset($likes[$key]);
}
}
} else {
//点赞 将$busid 追加到 $likes数组中
array_push($likes, $busid);
}
//数组转字符串
$likes = implode(',', $likes);
$where['like'] = $likes;
//数据更新
$com = $this->CommentModel->isUpdate(true)->save($where);
php数据库相关笔记
-
插入方法:save insert
save 可以自动写入时间戳字段 在用模型做插入的时候 支持验证器
insert 不会自动写入时间戳字段 不支持验证器插入 save
更新 ->isUpdate(true)->save($data);
$data 数据中一定要有 id 有id 就会执行更新