Php 编码点火器阵列中的Foreach
所以,我正在使用codeigniter,我正在尝试使用calendar类并将“事件”传递到我的日历。这是通过数组和标识符完成的,如下所示:Php 编码点火器阵列中的Foreach,php,codeigniter,Php,Codeigniter,所以,我正在使用codeigniter,我正在尝试使用calendar类并将“事件”传递到我的日历。这是通过数组和标识符完成的,如下所示: $calendar_info = array( 'month' => '12', 'year' => '2013', 'data' => array( 3 => 'Spaghetti<br/>Meatballs<br/>Salad<br/>Canned Fruit',
$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>'
)
);
那个错误只是为了不泄露我的网址而犯的一部分。下面是我现在正在尝试做的事情,并得到上面的错误
$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
}
),
);
阵列需要如下所示:
array(
menu_day => 'menu_entree<br/>menu_sideone<br/>menu_sidetwo<br/>menu_dessert
)
数组(
菜单日=>'菜单主菜
菜单侧一
菜单侧二
菜单甜点
)
或例如:
array(
3 => 'Spaghetti<br/>Meatballs<br/>Salad<br/>Canned Fruit'
)
数组(
3=>“意大利面
肉丸
沙拉
水果罐头”
)
您不能在数组()中循环。相反,正确的做法是像您所做的那样使用循环构建数组,然后将其分配到$calendar\u 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=array();
foreach($query->result()作为$row)
{
//在循环时将数组键添加到数组。。。
$data[$row->menu\u day]=$row->menu\u entre.
。$row->menu-sideone.
。$row->menu-sidetwo.
。$row->menudessert;
}
$calendar\u info=数组(
“月”=>“12”,
“年份”=>“2013年”,
//然后将其分配到适当的位置。。。
“数据”=>$data
);
您不需要构建变量$data
,只是为了以后扔掉它。您也可以先在$calendar\u info['data']
中使用空数组定义$calendar\u info
,然后在foreach
循环中添加键,作为$calendar\u info['data'][$row->menu\u day]
您无法在数组()中循环。相反,正确的做法是像您所做的那样使用循环构建数组,然后将其分配到$calendar\u 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=array();
foreach($query->result()作为$row)
{
//在循环时将数组键添加到数组。。。
$data[$row->menu\u day]=$row->menu\u entre.
。$row->menu-sideone.
。$row->menu-sidetwo.
。$row->menudessert;
}
$calendar\u info=数组(
“月”=>“12”,
“年份”=>“2013年”,
//然后将其分配到适当的位置。。。
“数据”=>$data
);
您不需要构建变量$data
,只是为了以后扔掉它。您也可以先在$calendar\u info['data']
中使用空数组定义$calendar\u info
,然后在foreach
循环中添加键,作为$calendar\u info['data'][$row->menu\u day]
您根本无法按照问题的方式将foreach
放入数组中。您需要使用foreach
循环提前设置值,然后将该数组以这种方式放入$calendar\u 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
);
$this->db->select('*');
$this->db->from('菜单');
$this->db->where('user_id',$session_data['id']);
$query=$this->db->get();
$data_array=array();
foreach($query->result()作为$row){
$data_数组[$row->menu_day]=$row->menu_ENTRE.
.$row->menu_sideone.
.$row->MENUSDETWO.
.$row->MENUDESERT;
}
$calendar\u info=数组(
“月”=>“12”,
“年份”=>“2013年”,
“数据”=>$data\u数组
);
你不能像你的问题那样把一个foreach
放在一个数组中。您需要使用foreach
循环提前设置值,然后将该数组以这种方式放入$calendar\u 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
);
$this->db->select('*');
$this->db->from('菜单');
$this->db->where('user_id',$session_data['id']);
$query=$this->db->get();
$data_array=array();
foreach($query->result()作为$row){
$data_数组[$row->menu_day]=$row->menu_ENTRE.
.$row->menu_sideone.
.$row->MENUSDETWO.
.$row->MENUDESERT;
}
$calendar\u info=数组(
“月”=>“12”,
“年份”=>“2013年”,
“数据”=>$data\u数组
);
不能在数组定义中使用foreach
。你到底想做什么?数组数据应该是什么样子?我更新了我的问题以便更好地解释。不能在数组定义中使用foreach
。你到底想做什么?数组数据应该是什么样的?我更新了我的问题以便更好地解释。我得到一个错误,说明意外的T\u双箭头
我猜这是因为for each中的=>
,我们只需要做以下操作吗?:“=>”
哇哦,对不起,那应该是=
,而不是=>
哦,好的。我不确定。我得到了一个错误,说明意外的T\u双箭头
我猜这是因为for each中的=>
,我们只需要执行以下操作吗?:“=>”
哇哦,对不起,那应该是=
,而不是
哦,好的。我不确定。