【发布时间】:2018-09-13 21:56:52
【问题描述】:
我上了三门课:
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 值很好。
在我网站的目录中,我有一个侧栏。默认情况下,显示所有社论和材料(类别),以及所有书籍。
因此,当我单击一篇社论/材料的复选框时,页面会使用来自 xml 的新查询重新加载,其中一个已被过滤。显示了目录中的书籍,但另一方面,我只需要显示我签入的元素,其他元素在新的 xml 查询数据中分组研究。
例如,如果我选择社论 Great Books,页面将重新加载,仅在复选框上显示一篇社论,而在关于 Materias 的部分,我将看到数组中包含的所有内容(materia ) 在每本书中,按类别分组以不显示重复的类别。
例子的另一种方式:
如果我先按 Materia 进行搜索,新查询的社论也会被分组。如果我选择了社论并单击了一个类别,则只会显示选择的类别和社论,如果我先选择了类别,则会上下颠倒。
我正在使用 $_GET['editorial'] 和 $_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 in(我选择的行)
【问题讨论】:
-
为什么是 $book->get_materia(0) ?? $book是每个循环中的当前书,为什么要传'0'?
-
因为在这种情况下,我只想得到第一个
-
var $id;-- 你看过新闻吗?当前的 PHP 版本是 7.2 和过时的 PHP 4 语法,用于声明您使用的对象属性 makes the propertiespublic。因此,他们不需要任何 getter 和 setter(无论如何,大多数时候这是不好的做法)。恕我直言,提供免费访问其属性的类(无论它们是public还是通过getter 和setter)不是OOP,而是变相的程序代码。
标签: php xml wordpress grouping getter-setter