1

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

4

2 回答 2

5

使用数组来描述键映射:

$map = array('Name' => 'title',
             'Filename' => 'name',
             'Type' => 'type');

foreach ($results[0] as $key => $value) {
    $Info['items'][1][$map[$key]] = $value;
}

每当您想要执行某种一对一的翻译时,您应该立即考虑使用关联数组。

于 2013-06-07T00:25:03.880 回答
0

更改您的查询,以便将字段作为您想要的字段名称。我不知道你的 DB 类是做什么的,但是使用 mySQL 你可以做到

SELECT `Filename` as `name` FROM table;

然后你可以这样做:

$Info['items'][1] = $results[0];
于 2013-06-07T00:28:29.020 回答