首页  >  文章  >  后端开发  >  数组动态列读不出数据

数组动态列读不出数据

WBOY
WBOY原创
2016-06-23 13:06:521010浏览

                $list=$m->query($sql);//查询结果				$columns=$this->getcolumns($tableName); //模型列名				foreach ($list as $l)		{						foreach ($columns as $c)			{			   $l[$c];//数据读不出来			}		}


如以上 从数据库把所有列都出来 然后动态 根据列名动态取数据取不出来


回复讨论(解决方案)

因为要 返回json 表列有点多  一个个写有点复杂 所以找了个取列明的方法 
然而不能动态读取数据么


print_r($list);
print_r($columns);
看看都有什么


print_r($list);
print_r($columns);
看看都有什么



好像发现一个问题

$l['user_name'] 能显示数据  $l['USER_NAME'] 换了大小写就不显示了  php数组区分大小写么

数据库里是大写查询出来的 读的时候都用小写?

对!php数组区分大小写

$a = array('a' => 1, 'A' => 2);print_r($a);
Array(    [a] => 1    [A] => 2)

由于数据库查询时,字段名可能大小写不统一
所以你可对读到的数组用  array_change_key_case 函数统一将关联键转换成大写或小写

由于数据库查询时,字段名可能大小写不统一
所以你可对读到的数组用  array_change_key_case 函数统一将关联键转换成大写或小写


知道了 多谢

由于数据库查询时,字段名可能大小写不统一
所以你可对读到的数组用  array_change_key_case 函数统一将关联键转换成大写或小写


$list=array_change_key_case($list,CASE_UPPER);foreach ($list as $l)		{						foreach ($columns as $c)			{				$l['USER_NAME'];//			}}


转换后读的时候好像还是大写读不出 只能小写读数据

既然你是 foreach ($list as $l)
那么显然 $list 是二维数组,不然也不会有 foreach ($list as $l)
所以要对 $l 做 array_change_key_case


foreach ($list as $l)
{           
      $l = array_change_key_case($l, CASE_UPPER);
      foreach ($columns as $c)
      {
                echo $l[$c];
      }
}

既然你是 foreach ($list as $l)
那么显然 $list 是二维数组,不然也不会有 foreach ($list as $l)
所以要对 $l 做 array_change_key_case
}



了解了
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn