若未指定属性(第二个参数),则只返回列名的一维索引数组。
若指定第二个参数,则返回一个2维关联数组,其中key是列名,value是属性=》属性值的第二维数组。
/**
* 读取一个表的列信息
* @author 吾爱 qq296624314
* @param string $tablename 表名
* @param array $option 需要获取的属性
* @return array 返回的一个数组,若指定属性,则以 array(列名1=>array(属性名1=>属性1值……)……)的格式返回,否则以 array(列名1,列名2……)的格式返回
* @example
*/
function getcolumns($tablename,$option=array()){
$m=m();
$columns=array();
$m_re=$m->query(show columns from `{$tablename}`);
if(!$m_re){
return array();
}
foreach($m_re as $v){
$v=array_change_key_case($v);
if(empty($option)){
$columns[]=$v[field];
}else{
$vv=array();
foreach($option as $op){
$op=strtolower($op);
if(array_key_exists($op,$v)){
$vv[$op]=$v[$op];
}
}
$columns[$v[field]]=$vv;
}
}
return $columns;
}
//用法
dump(getcolumns(ggw,array(key,type)));
ad:真正免费,域名+虚机+企业邮箱=0元