我有三节课:
class libro {
var $id;
var $name;
var $editorial;
var $materia = array();
[... getters and setters ]
class editorial {
var $name;
var $id;
[...]
class materia {
var $name;
var $id;
[...]
这是在网站目录上工作,我从xml文件中获得了大量的书籍。这很好用,我查了一下;我收到的xml值很好。
在我的网站目录中,我有一个旁边的栏。默认情况下,会显示所有社论和 materias (类别)以及所有图书。
因此,当我点击一个编辑/材料的复选框时,页面将重新加载来自xml的新查询,其中一个被过滤。显示目录中的书籍,但是除此之外,我只需要显示我签入的元素,另一个则分组研究新的xml查询数据。
例如,如果我选择编辑 Great Books ,页面将重新加载,仅显示复选框上的一个社论,而在旁边的关于Materias的部分中,我将看到包含在内的所有内容。每本书中的数组(materia),按不显示重复的类别进行分组。
示例的另一种方式:
如果我先搜索Materia,那么新查询的社论也会被分组。如果我选择了编辑并点击某个类别,则只会显示所选的类别和编辑,并且会颠倒如果我首先选择了该类别。
我正在使用$ _GET ['编辑']和$ _GET [' materia']来处理新的查询数据。
这是关于分组的代码......
$bookList = array();
// Here are methods where I set xml data to classes, and I get an array (link below)
$groupedBookList = array();
foreach ($bookList as $book){
// ERROR IN LINE BELOW (Undefined offset: 0 in ...)
$groupBL_Element = &$groupedBookList[$book->get_editorial()->get_id() . "_" .$libro->get_materia(0)->get_id() ];
$groupBL_Element['editorial'] = $book->get_editorial()->get_id();
$groupBL_Element['materia'] = $book->get_materia(0)->get_id();
}
return array_values($groupedBookList);
goo.gl/ 397Wuz
有人知道某种方法来分组吗?感谢
我得到的错误是:
未定义的偏移量:中的0(由我选择的行)
答案 0 :(得分:0)
我不确定这是否是您要找的,但是如果您添加到您的foreach:
foreach ($bookList as $book){
$groupBL_Element = &$groupedBookList[$book->get_editorial()->get_id() . "_" .$libro->get_materia(0)->get_id() ];
$groupBL_Element['editorial'] = $book->get_editorial()->get_id();
$groupBL_Element['materia'] = $book->get_materia(0)->get_id();
$groupedBookList[] = $groupBL_Element;
}
然后你可以返回$ groupedBookList,并将你的元素分组。