0

という名前のデータベーステーブルがありますCategories。db内のすべてのカテゴリを含むフォームドロップダウンを作成したいと思います。私の解決策は、連想配列を作成し、それをform_dropdown()関数の2番目のパラメーターに追加することです。私の結果は、不要な多次元配列です。

モデル:

function list_categories()
    {
        $user_id = $this->tank_auth->get_user_id();

        $this->db->where('user_id', $user_id);
        $this->db->order_by("date_created", "desc");
        $query = $this->db->get('categories');
        return $query;      
    }

意見:

//create array
$categories = array();

if ($query->num_rows() > 0) 
{
     $categories = $query->result_array();
}

//create dropdown
echo form_dropdown('category', $categories, $date_created); //selected value based date created

コードは多次元配列を与えます

Array ( 
[0] => Array ( [cat_id] => 27 [user_id] => 3 [cat_title] => Some Title [status] => 0 [date_created] => 2012-06-22 18:48:14 ) 

[1] => Array ( [cat_id] => 24 [user_id] => 3 [cat_title] => Title [status] => 0 [date_created] => 2012-06-20 19:37:47 ) 

[2] => Array ( [cat_id] => 23 [user_id] => 3 [cat_title] => Another Title [status] => 0 [date_created] => 2012-06-20 18:25:45 ) 

etc...

上記の結果を、IDキーがカテゴリIDであり、カテゴリタイトルを評価する連想配列に置き換えるにはどうすればよいですか?

例:

$categories = array(
    "23" => "some title",
    "14" => "another title",
);
4

4 に答える 4

5

例を挙げた解決策:

$categories=array(
'0'=>array("cat_id"=>"27","cat_title"=>"some title"),
'1'=>array("cat_id"=>"24","cat_title"=>"Title"),
'2'=>array("cat_id"=>"23","cat_title"=>"Another Title"),
);

   foreach($categories as $catID=>$categoriesData){
        $finalArray[$categoriesData["cat_id"]]=$categoriesData;
   }

print_r($finalArray);


/*
OUTPUT

Array
(
    [27] => Array
        (
            [cat_id] => 27
            [cat_title] => some title
        )

    [24] => Array
        (
            [cat_id] => 24
            [cat_title] => Title
        )

    [23] => Array
        (
            [cat_id] => 23
            [cat_title] => Another Title
        )

)
*/
于 2012-06-23T01:18:16.317 に答える
1

次のようにします。

foreach($categories as $category){
    $category_array[$category['cat_id']] = $category['cat_title'];
}

$categories = $category_array;

これにより、ドロップダウンで使用するために、カテゴリ ID が配列キーとして割り当てられ、タイトルが値として割り当てられます。

于 2012-06-23T00:59:20.850 に答える
0

この簡単な方法を使用して、

$query = $this->db->get_where('table', array('table_id' => $id));

        $queryArr = $query->result();        

        foreach ($queryArr[0] as $key=>$val)
        {
            $row[$key]=$val;
        }

print_r($row); //this will give associative array
于 2015-04-10T13:40:25.063 に答える
0

html_helper で _list() 関数を使用して、多次元配列からネストされたリストを作成できます

于 2013-03-29T00:24:03.313 に答える