将节点存入(对象)到数组中

时间:2011-03-30 12:19:29

标签: php drupal

我有这段代码,它从我的节点类型'Student'中检索一个节点。 我尝试了不同的东西,将'$node'中的所有值保存到数组中。但$ node是一个对象。 我的问题是如何将$node中的“所有”值存储到数组中。在Java中,C#更容易实现。

$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'loop'

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)”

1 个答案:

答案 0 :(得分:2)

以下是让您的对象以数组的形式行事(按访问方式):

$result = new ArrayObject( $node );

如果你真的想要一个数组,那么只需在之后投射:

$result = (array) $result;

哎呀,想想看,你甚至可以这样做:

$result = (array) $node;

: - )

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

修改

// 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

}