Where can i find a description of the structure of the vocabulary object?

I want to get an array of nodes ordered by their vocabularyterm (all nodes have 1 term of the vocabulary) :

<?php array ( Vocabulary_term1 => array( node1_nid, node2_nid), Vocabulary_term2 => array( node3_nid, node4_nid, node5_nid), ...) ?>

first i load the vocabulary object:
<?php $vocabulary = taxonomy_vocabulary_load(1); //1 is the vocabulary vid ?>

Now i want to loop all terms:

<?php
$nodes_array = array();
foreach ($vocabulary->tids as $tid) { // !! $vocabulary->tids is just a guess !! 
    $nodes_array[$tid]=array(); 
    while ($result = taxonomy_select_nodes($tid)) {
              $nodes_array[$tid][] = $result->nid; // !! how do i get the nid from the result?  !!
}
?>

EDIT i've done some php coding to get the keys of the vocabulary object:
vid name description help relations hierarchy multiple required tags module weight language nodes

there doesn't seem to be an array of terms in this object...

thanks!

Comments

yangke’s picture

<?php
$vocabulary_vid = 1;
$sql = "SELECT * FROM {term_data} WHERE vid = %d";
$query_terms = db_query(db_rewrite_sql($sql), $vocabulary_vid);
$sheet = array();
while ($data = db_fetch_object($query_terms)){
  $term = $data->name;
  $tid = $data->tid;
// load all node nids belonging to the tid
	$sql = "SELECT * FROM {term_node} INNER JOIN {node} ON term_node.nid=node.nid WHERE term_node.tid = %d AND ( node.tnid=node.nid OR node.tnid=0)"; //AND ( node.tnid=node.nid OR node.tnid=0) makes sure you only return the nodes in the original translation(to avoid duplicates with translations)
	$query_nodes = db_query(db_rewrite_sql($sql), $tid);
	while ($nodes = db_fetch_object($query_nodes)){
		$nid = $nodes->nid;
		$sheet[$term][] = $nid;
	}
}
?>

thanks to Benjamin Lowenstein, Colingo Labs LLC : http://benl.com/node/20 for the code example