概要
FuelPHPでは、クエリビルダを使ってDBのデータを取得できます。結果に対してas_array()を使うと2次元の連想配列で取得できます。取得したすべてのレコードをループで処理する場合は、扱いやすい形です。
一方、ある条件に一致するレコードの特定のフィールドを参照するのであれば、1次元の連想配列の方が扱いやすいです。例えば id, name というフィールドの組だけ抽出する場合は、結果に対してas_array('id', 'name')とすると得られます。
それぞれ具体的な事例で見ていきます。
2次元の連想配列を取得する場合
モデル
class Model_Product extends Model
{
//商品一覧を取得
public static function select_products()
{
return DB::select()->from('products')->execute()->as_array();
}
}
コントローラ
class Controller_Home extends Controller
{
public function action_index()
{
// DBからデータを取得
$products = Model_Product::select_products();
// データの内容を確認
Debug::dump($products);
}
}
取得した連想配列

1次元の連想配列を取得する場合
as_array()に引数を指定します。コントローラはそのままです。
モデル
class Model_Product extends Model
{
//商品名一覧を取得
public static function select_products()
{
return DB::select()->from('products')->execute()->as_array('id', 'name');
}
}
取得した連想配列

id と name の組を key: value の形で取得できました。
ちなみに、as_array('id', 'name', 'price')としても取得結果は同じでした。3つ目以降の引数は無視されるみたいです。

