我这里有这段代码
$sql_array = array();
if($result['user_id'] == 'OA'){
$sql = "select distinct id, FirstName, LastName from table_one ti left join table_two sp on (sp.user_id = ti.id) or (sp.user_id = ti.id)";
$query = $this->db->query($sql);
$results_array = $query->result_array();
$sql_array = array_push($sql_array, $results_array);
}
elseif($result['user_id'] == 'SH'){
$sql = "select distinct id, first_name, last_name from table_three teo left join table_two sp on sp.user_id = teo.id";
$query = $this->db->query($sql);
$results_array = $query->result_array();
$sql_array = array_push($sql_array, $results_array);
}elseif($result['user_id'] == 'OF'){
$sql = "select distinct id, first_name, last_name from table_four os left join table_two sp on sp.user_id = os.id";
$query = $this->db->query($sql);
$results_array = $query->result_array();
$sql_array = array_push($sql_array, $results_array);
}elseif($result['user_id'] == 'US'){
$sql = "select distinct ID, substring_index(display_name, ' ', 1) as 'FirstName', substring_index(display_name, ' ', -1) as 'LastName' from table_five tu left join table_two sp on sp.user_id = tu.id";
$query = $this->db->query($sql);
$results_array = $query->result_array();
$sql_array = array_push($sql_array, $results_array);
}
它遍历所有$ result ['user_id'],并根据$ result ['user_id']来查看要运行的查询字符串....使用上面的代码我收到错误{{1} }
我做错了什么或者有更好的方法吗?
谢谢, J
答案 0 :(得分:1)
为什么不使用[]语法?
if($result['user_id'] == 'OA'){
$sql = "select distinct id, FirstName, LastName from table_one ti left join table_two sp on (sp.user_id = ti.id) or (sp.user_id = ti.id)";
$query = $this->db->query($sql);
$results_array = $query->result_array();
$sql_array[] = $results_array;
}
关于错误的原因是因为影响了array_push
对数组变量的返回。问题是array_push
返回一个整数,所以在循环的第二个回合你将尝试传递一个整数作为array_push
的第一个参数
答案 1 :(得分:0)
您使用整数值覆盖数组。
array_push()
返回数组中新的元素数。
$sql_array = array_push($sql_array, $results_array);
$sql_array
将具有整数值。
从我收集到的内容,您想使用array_merge()