[英]Foreach in array for codeigniter
因此,我正在使用codeigniter,並且嘗試使用Calendar類並將“事件”傳遞給我的日歷。 這是由一個數組和一個標識符完成的,如下所示:
$calendar_info = array(
'month' => '12',
'year' => '2013',
'data' => array(
3 => 'Spaghetti<br/>Meatballs<br/>Salad<br/>Canned Fruit',
4 => 'Ham<br/>Mashed Potatoes<br/>Corn<br/>Salad</br>'
)
);
現在,我無法將菜單項硬編碼到應用程序中,而是從數據庫中獲取它們。 我的問題在於將foreach放入數組中,出現以下錯誤:
Parse error: syntax error, unexpected T_FOREACH, expecting ')'
該錯誤只是一部分,所以不要透露我的網址。 下面是我現在正在嘗試做的並得到上面的錯誤。
$this->db->select('*');
$this->db->from('menus');
$this->db->where('user_id', $session_data['id']);
$query = $this->db->get();
$calendar_info = array(
'month' => '12',
'year' => '2013',
'data' => array(
foreach ($query->result() as $row)
{
$row->menu_day => $row->menu_entree.'<br/>'.$row->menu_sideone.'<br/>'.$row->menusidetwo.'<br/>'.$row->menudessert
}
),
);
更新
這正是我在下面嘗試做的事情:
我有一個數據庫表,其中包含一個月中每一天的菜單項。
列是:
menu_day
menu_month
menu_entree
menu_sideone
menu_sidetwo
menu_dessert
數組需要如下所示:
array(
menu_day => 'menu_entree<br/>menu_sideone<br/>menu_sidetwo<br/>menu_dessert
)
或者例如:
array(
3 => 'Spaghetti<br/>Meatballs<br/>Salad<br/>Canned Fruit'
)
您不能像嘗試那樣在array()
聲明內循環。 相反,正確的做法是像完成操作一樣使用循環構建數組,然后將其分配給 $calendar_info['data']
。
不要將PHP代碼視為動態構建的東西。 這是您正在生成的數組數據結構,而不是定義它的代碼。
// First build the array with your loop...
// An empty array to hold the result...
$data = array();
foreach ($query->result() as $row)
{
// Add array keys to the array while looping...
$data[$row->menu_day] = $row->menu_entree.'<br/>'.$row->menu_sideone.'<br/>'.$row->menusidetwo.'<br/>'.$row->menudessert;
}
$calendar_info = array(
'month' => '12',
'year' => '2013',
// Then assign it into the appropriate place...
'data' => $data
);
您不需要構建變量$data
只是為了以后扔掉。 您也可以先在$calendar_info['data']
中用空數組定義$calendar_info
,然后在foreach
循環中將鍵添加為$calendar_info['data'][$row->menu_day]
。
您根本無法按照問題的排列方式在數組中放入foreach
。 您需要使用foreach
循環提前設置值,然后將該數組放入$calendar_info
中:
$this->db->select('*');
$this->db->from('menus');
$this->db->where('user_id', $session_data['id']);
$query = $this->db->get();
$data_array = array();
foreach ($query->result() as $row) {
$data_array[$row->menu_day] = $row->menu_entree . '<br/>' . $row->menu_sideone . '<br/>' . $row->menusidetwo . '<br/>' . $row->menudessert;
}
$calendar_info = array(
'month' => '12',
'year' => '2013',
'data' => $data_array
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.