以数组形式返回结果
前面已经讲了drupal常见的数据库操作,但是文人更喜欢用数组的方式使用结果,但是我并没有找到可以直接返回数组的方法,所以只有曲线救国了。
drupal返回的结果是多维对象,所以我们先说php多维数组 对象转换。
<?php //对象转数组 function objectToArray($d) { if (is_object($d)) { // Gets the properties of the given object // with get_object_vars function $d = get_object_vars($d); } if (is_array($d)) { /* * Return array converted to object * Using __FUNCTION__ (Magic constant) * for recursive call */ return array_map(__FUNCTION__, $d); } else { // Return array return $d; } } //数组转对象 function arrayToObject($d) { if (is_array($d)) { /* * Return array converted to object * Using __FUNCTION__ (Magic constant) * for recursive call */ return (object) array_map(__FUNCTION__, $d); } else { // Return object return $d; } } ?>
下面我们再说说单层的php多维数组 对象转换。
<?php function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=>$v){ if( gettype($v)=='array' || getType($v)=='object' ) $e[$k]=(object)arrayToObject($v); } return (object)$e; } function objectToArray($e){ $e=(array)$e; foreach($e as $k=>$v){ if( gettype($v)=='resource' ) return; if( gettype($v)=='object' || gettype($v)=='array' ) $e[$k]=(array)objectToArray($v); } return $e; } ?>
原文地址:http://w3123.com/node/876