谢谢你们。我的方式错了。请不要再发帖了。
我的阵列遇到了一些麻烦。
我以这种方式生成我的数组:
private function _getMenuBar(){
$data = array();
$query = $this->db->query("SELECT * FROM df_menubar_table WHERE visible = 1 AND parent = -1 ORDER BY priority");
foreach($query->result_array() as $row){
$data[count($data)] = array(
"menu" => array(
"title" => $row['title'],
"url" => $row['url'],
"name" => $row['name'],
"selected" => 0
)
);
}
return $data;
}
像往常一样,数组会像
一样提供array [0] = menu =>阵列(标题,URL,姓名,选择的);
但我想不将$data[**count($data)**]
定义为索引并将'menu'定义为索引。并且CodeIgniter不支持传递给视图的类似内容。因此我需要键入菜单。
这意味着:
array [0] = menu =>阵列(标题,URL,姓名,选择的);
要:
array ['menu'] = array(title,url,name,selected);
顺便说一句,我试过+ =但它只存储了最后一行。
感谢。
修改
我试着按照你的方式转向:
我试了一下。但它转向了这个:
array(1) {
["menu"]=>
array(5) {
[0]=>
array(1) {
["menu"]=>
array(4) {
["title"]=>
string(8) "اصلی"
["url"]=>
string(30) "http://localhost/dreamfactory/"
["name"]=>
NULL
["selected"]=>
int(0)
}
}
答案 0 :(得分:0)
对$ data执行array_shift()
。这样,你摆脱了array[0]
包装器。这是你的意思吗?如果没有,请更明确
答案 1 :(得分:0)
您需要某种类型的唯一标识符。将多个项目添加到数组['menu'],没有唯一标识符,将导致最后/最新项目覆盖之前的项目。您可以设置如下所示的数组。
Array 1:
Array (
[menu] => Array (
[0] => Array (
[title] => Title
[url] => URL
[name] => Name
[selected] => Selected
)
)
)
Array 2:
Array (
[0] => Array (
[title] => Title
[url] => URL
[name] => Name
[selected] => Selected
)
)
最后一个可以与菜单项同时使用。
代码如下(简化)
private function _getMenuBar(){
$data = array();
$query = $this->db->query("SELECT * FROM df_menubar_table WHERE visible = 1 AND parent = -1 ORDER BY priority");
$countRows = 0;
foreach($query->result_array() as $row){
$data[$countRows] = array(
"title" => $row['title'],
"url" => $row['url'],
"name" => $row['name'],
"selected" => 0
);
$countRows++;
}
return $data;
}