如何简化我的数组代码

时间:2013-06-07 00:17:40

标签: php database arrays

我正在尝试将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。非常感谢!

2 个答案:

答案 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];