将一个Array元素推送到codeigniter中的现有多维数组中

时间:2015-06-18 11:19:09

标签: php mysql codeigniter multidimensional-array

我在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);

3 个答案:

答案 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);
相关问题