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;
}

ある種の 1 対 1 変換を実行したいときはいつでも、すぐに連想配列の使用を考える必要があります。

于 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 に答える