ホームページ  >  記事  >  バックエンド開発  >  配列の動的列からデータを読み取ることができません

配列の動的列からデータを読み取ることができません

WBOY
WBOYオリジナル
2016-06-23 13:06:521009ブラウズ

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


上記のように、データベースからすべての列を取得し、列名に基づいてデータを動的にフェッチします。

だってjson を返す必要があります リストにはたくさんのリストがあり、それらを 1 つずつ書くのは少し複雑なので、リストを取得する方法を見つけました

あなたは

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 は 2 次元配列であり、そうでなければ foreach ($list as $l) は存在しません

したがって、 $l

foreach ($list as $l)

{ $l = array_change_key_case($l, CASE_UPPER)

foreach ($columns as $c); を実行する必要があります。
エコー $l[$ c];

}
}

あなたは foreach ($list as $l) なので、明らかに $list は 2 次元配列です。そうでなければ、foreach ($list as $l) はありません。 $l に対して array_change_key_case を実行する
}



理解しました
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。