我有这段代码,它从我的节点类型'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)”
答案 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
}