2013-06-21 78 views
0

當前正在嘗試生成動態子導航。因此,我從數據庫中提取數據並將其中的一部分存儲爲數組。現在我想在這個數組中做一個foreach。據我所知,這是不可能的。在數組中使用foreach

但也許我錯了。我想知道這是否可能,如果是的話,我該怎麼做?

這是我的代碼,它不會工作,因爲它發出了一個語法錯誤。

$this->subnav = array(
         '' => array(
          'Test Link'  => 'login.php', 
          'Badged Link' => array('warning',10023,'check.php') 
         ), 
         'benutzer'  => array(
          'Benutzer suchen'  => '/mother/index.php?page=benutzer&subpage=serach_user', 
          'Benutzer hinzufügen' => '/mother/index.php?page=benutzer&subpage=add_user', 
          'Rechtevergabe'   => '/mother/index.php?page=benutzer&subpage=user_rights' 
         ), 
         'logout'  => array(
          'Login'  => '/mother/login.php', 
          'Logout' => '/mother/index.php?page=logout' 
         ), 
         'datenbank'  => array(
          (foreach($this->system->get_databases() as $db){array($db->name => $db->url)}), 
          'Deutschland'   => '/mother/login.php', 
          'Polen'     => '/mother/index.php', 
          'Spanien'    => '/mother/index.php', 
          'Datenbank hinzufügen' => '/mother/index.php?page=datenbank&subpage=add_database' 
         ) 
        ); 
} 
+1

[這](http://php.net)可能會幫助 – Orangepill

+0

有你'陣列上方foreach',把它從數據庫中分配值到一個變量,然後將該變量傳遞給數組 – naththedeveloper

回答

1

你不能像這樣在一個數組中放置foreach循環。你可以做這樣的事情。

foreach($this->system->get_databases() as $db) 
{ 
    $this->subnav['datenbank'][$db->name] = $db->url; 
} 
+0

Thx。我希望它能以某種方式成爲可能,但是我想我必須堅持下去:) – ThatMSG

0

這是不可能的。但你可以用其他方式來完成它,比如你可以把foreach放在這個數組的外部和頂部,然後分配給一個數組,然後你可以使用這個數組變量。

例如

$arrDB = array(); 
foreach($this->system->get_databases() as $db) { 
    $arrDB[$db->name] = $db->url; 
} 

現在把它分配給:

'datenbank'  => $arrDB