Php 编码点火器阵列中的Foreach

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',

所以,我正在使用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>'
   )
);
那个错误只是为了不泄露我的网址而犯的一部分。下面是我现在正在尝试做的事情,并得到上面的错误

    $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中的
=>
,我们只需要执行以下操作吗?:
“=>”
哇哦,对不起,那应该是
=
,而不是
哦,好的。我不确定。