数组动态列读不出数据

WBOY
Release: 2016-06-23 13:06:52
Original
1011 people have browsed it

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


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


回复讨论(解决方案)

因为要 返回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);
Copy after login
Array(    [a] => 1    [A] => 2)
Copy after login

由于数据库查询时,字段名可能大小写不统一
所以你可对读到的数组用 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'];//			}}
Copy after login


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

既然你是 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
}



了解了
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template