我正在尝试将db
返回的结果分配给数组
我有
$results = Db::get('get_items', array('id' =>$id));
$Info['items'][1]['title'] = $results[0]['Name'];
$Info['items'][1]['name'] = $results[0]['Filename'];
$Info['items'][1]['type'] = $results[0]['Type];
DB只返回1行数据。
我需要$info
看起来像以下
Array
(
[items] => Array
(
[1] => Array
(
[title] => Title test
[filename] => test.xml
[type] => company
)
)
[mis] => data
)
我想知道是否有更好的方法可以将值分配给$info
,而不仅仅是hardcoded
。非常感谢!
答案 0 :(得分:5)
使用数组描述键映射:
$map = array('Name' => 'title',
'Filename' => 'name',
'Type' => 'type');
foreach ($results[0] as $key => $value) {
$Info['items'][1][$map[$key]] = $value;
}
如果您想要执行某种一对一翻译,您应该立即考虑使用关联数组。
答案 1 :(得分:0)
更改您的查询,以便您将字段作为所需的字段名称。我不知道你的数据库类是做什么的,但是使用mySQL你可以做到
SELECT `Filename` as `name` FROM table;
然后你可以这样做:
$Info['items'][1] = $results[0];