我在codeigniter中有这样的查询
$query_tutors = $this->db->get_where("tutor_info", array('tutor_id' => $tutor_id));
我还想在查询中传递其他数组元素,这取决于某些条件。
那么如何将其他多维数组元素推送到现有数组中,以便我可以在查询中将整个变量作为一个整体传递?
在这种情况下,array_push不起作用。
$array = array();
$array = array("tutor_id" => $tutor_id);
$array = array("online" => $online); // want to merge this to the 1st array.
$query_tutors = $this->db->get_where("tutor_info", $array);
答案 0 :(得分:1)
首先,你做错了。
$array = array();
$array = array("tutor_id" => $tutor_id);
您再次重新创建数组,这会将其从内存中删除。要么你必须使用
$array['tutor_id'] = $tutor_id;
$array["online"] = $online;
或
$array = array('tutor_id' => $tutor_id, 'online' => $online);
或者如果要合并两个数组
$array = array_merge(array('tutor_id' => $tutor_id), array('tutor_id' => $tutor_id));
答案 1 :(得分:0)
您的初始代码
$array = [];
$array = ["tutor_id" => $tutor_id];
现在,如果你想添加条件合并,只需按照,
if($condition)
{
$array = array_merge($array, ["online" => $online]);
}
如果$condition == true
你是最终数组,
$array = ['tutor_id' => $tutor_id, 'online' => $online];
答案 2 :(得分:-1)
你几乎就在那里,只需要阅读更多关于关联数组的内容。
解决方案:
$array = array();
$array["tutor_id"] = $tutor_id;
$array["online"] = $online;
$query_tutors = $this->db->get_where("tutor_info", $array);
这样,您的$array
将拥有您想要的所有索引。
您可以这样做:
$array = array();
if (!empty($tutor_id))
{
$array["tutor_id"] = $tutor_id;
}
if (!empty($online))
{
$array["online"] = $online;
}
$query_tutors = $this->db->get_where("tutor_info", $array);