欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

数组动态列读不出数据

程序员文章站 2022-06-15 09:17:09
...
                $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
}



了解了