public function filter($index, $value) {
if($this->tasks) {
foreach ($this->tasks as $id => $t) {
if($t->$index != $value) {
unset($this->tasks[$id]);
}
}
} else {
echo "Tasks are empty";
}
}
所以我遇到了上面搜索多维对象的函数有问题。我的意思是这样的:在多维的php对象中搜索
$task->form->id
$task->form->type
$task->author->id
$task->fields->[FIELDNAME]->value
$task->form->template->id
$task->id
等这些是需要访问的字段的种类。我认为我可以在$ index中放入“form-> id”,但这不起作用。对于我的申请,我可以拼写出来。我只是不想为每个对象写一个函数,因为其中的一些(正如你所看到的)只需要在第一个层次上,有些需要一直到四个对象。
只要告诉我你需要更多的数据,我会给它。我熟悉每一个击键,所以它有时意味着我忘记分享一些东西。
如果你有帮助,非常感谢。
我做了什么
好了,所以我得到它的工作,但我做了一些不同的东西。
在它的Form
类
public function search($value, $type = NULL) {
if(is_object($this->fields)) {
foreach($this->fields as $page) {
foreach($page as $name=>$field) {
if($name != "pdata") {
if ($type != NULL && $field->type == $type && $field->value == $value || $type == NULL && isset($field->value) && $field->value == $value) {
return true;
}
}
}
return false;
}
} else {
//Probably corrupted
return false;
}
return false;
}
外面我可以调用这个函数,并删除或添加基于它是否返回true或false。
此外,它似乎有在$任务 - >表单级别内的多个变量。在这种情况下,不必编写函数来检索每个函数,只需编写一个函数来检索整个“表单”对象。 – Shattuck
是的,这似乎需要很长的时间,而时间不是我拥有的。我希望它看起来像一个简单的数组递归搜索。我只是不知道如何实现递归,你认为这会起作用,还是我完全错了。 –
哦是的,有很多很多变量可以被搜索。它最终成为相当大量的数据。 –