首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将节点存入(对象)存入数组

问将节点存入(对象)存入数组
EN

Stack Overflow用户
提问于 2011-03-30 20:19:29
回答 1查看 477关注 0票数 0

我有这段代码,它从我的节点类型'Student‘中检索一个节点。我尝试了不同的方法,将'$node'中的所有值保存到一个数组中。但是$node是一个对象。我的问题是如何将$node中的“所有”值存储到一个数组中。在Java an C#中,这样做会更简单。

代码语言:javascript
复制
$results = db_query(db_rewrite_sql("SELECT nid FROM {node} WHERE type =
 'student'"));

while($nid = db_result($results)) {

  $node = node_load($nid);

  // Do something with $node

}

在java或c#中,您可以在for/foreach/while“循环”中这样说。

代码语言:javascript
复制
String item[] = null;
for(int i = 0; i<=myNode; i++) {
   item.add(myNode[i]); // the item and value UgentID, name student, location student are been stored in item array.
}

我不知道PHP是否也有这个功能。"yourObject.Add(otherObject)“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-30 20:31:48

下面的代码让你的对象像一个数组一样行为(访问方式):

代码语言:javascript
复制
$result = new ArrayObject( $node );

如果你真的想要一个数组,只需在之后转换它:

代码语言:javascript
复制
$result = (array) $result;

真见鬼,仔细想想,你甚至可以这么做:

代码语言:javascript
复制
$result = (array) $node;

:-)

我刚刚发现,两种转换为数组的方法实际上也会公开受保护的/私有的属性。:-S可怕。

编辑:

代码语言:javascript
复制
// initiate array
$nodes = array();
while($nid = db_result($results)) {

  // either do one of the following, to push
  $nodes[] = node_load($nid);

  // or:
  array_push( $nodes, node_load($nid) );

  // Do something with $node

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5486157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档