我有表格:课程和表格:课程。 А 课程可能有多个会话(例如 5 个会话)。我必须做什么(也许在 PHP 中)才能将这 5 条记录和会话转换为一个记录/数组?我已经尝试过array_merge()和递归()array_merge,但没有成功。
如果您需要我收到的确切数据/行/记录/数组,我会发布它们。
谢谢。
编辑:
public function getCourses($dateFrom, $dateTo)
{
$select = $this->_dbTableCourseTimetables->select()->setIntegrityCheck(false);
$select->from(array('a' => 'course_timetables'), 'a.id_course_timetables');
$select->where('b.start_time >= ?', $dateFrom);
$select->where('b.end_time <= ?', $dateTo);
$select->where('b.isActive >= ?', 'yes');
$select->joinInner(array('b' => 'course_sessions'), 'a.id_course_timetables = b.id_course_timetables', 'b.id_course_sessions');
echo $select;
return $this->_dbTableCourseTimetables->fetchAll($select)->toArray();
}
这是我的 Zend 查询,它生成了这个 SQL:
SELECT a.id_course_timetables, b.id_course_sessions FROM course_timetables AS a INNER JOIN course_sessions AS b ON a.id_course_timetables = b.id_course_timetables WHERE (b.start_time >= '1332745200') AND (b.end_time <= '1333350000') AND (b.isActive >= 'yes')
如果我执行它。它返回:
id_course | id_course_sessions
--------- -----------------
303 533
303 534
303 532
304 535
当我循环遍历foreach()时,它向我渲染了四个项目。我实际上想成为两个项目,因为课程只有两个。希望这是有道理的。谢谢。
附言多么不可思议的编辑....
你可以做这样的实现。
$array = array();
foreach($your_Result_array as $k => $v) {
if (empty($array[$k])) {
$array[$k] = array($v);
} else {
array_push($array[$k], array($v));
}
}
var_dump($array);
//Your array will be like [303] => array(534, 532, 533), [304] = array(535)
希望这有帮助