Array_merge возвращает только первый массив, что не так?
$this->db->row возвращает ассоциативный массив.
public function postData($id) {
$params_student = ['id' => $id];
$result_student = $this->db->row('SELECT * FROM students WHERE id = :id', $params_student);
$params_parents = ['student_id' => $id];
$result_parents = $this->db->row('SELECT * FROM parents WHERE student_id = :student_id', $params_parents);
$data = array_merge($result_student, $result_parents);
return $data;
}
Если в array_merge поменять массивы местами, вернется только первый в списке.
$data = array_merge($result_student, $result_parents); вернет массив $result_student
$data = array_merge($result_parents, $result_student); вернет массив $result_parents
Что я делаю не так?
Не могу пока ответить на ваш вопрос, но есть ли смысл в таком возврате? Зачем сливать в один массив объекты разных типов? (раз они в разных таблицах - у них разные типы). Может стоит вернуть хотя-бы так?
А что подразумевается под разными типами? Все элементы - строки. Желательно вернуть один массив, т.к. данные из двух таблиц необходимо вывести в одной форме