2014-02-06 38 views
-1

我正在製作一個Staff Online版塊,供會員查看任何工作人員在遊戲中幫助他們的天氣。我開始用一系列Staff Members賬號來解決這個問題。它看起來是這樣的:PHP中的foreach值

$this->view->staffAdmins = array(64, 80, 96); 

然後我用一個foreach語句獲取每個帳戶的以下細節:

  • 他們是否登錄?
  • 如果是這樣,用自己的ID從陣列中,並從users

foreach聲明看起來像這樣得到更多的信息:

foreach ($this->view->staffAdmins as $query) { 
    //Are they logged in? 
    $sql = "SELECT * FROM point WHERE uid = :ID AND zoneid > -1"; 
    $arr = array(":ID" => $query); 
    $this->view->result = $this->database->DBCtr($sql, $arr); 
    //Get their details! 
    $sql = "SELECT * FROM users WHERE ID = :ID"; 
    $arr = array(":ID" => $query); 
    $this->view->staffmem = $this->database->DBQry($sql, $arr); 
    $this->view->name = $this->view->staffmem[0]['name']; 
    $this->view->truename = $this->view->staffmem[0]['truename']; 
    if ($this->view->result == 1){ 
     echo $this->view->truename; 
    } 
} 

返回下面的輸出:

Hulu is Online 
Cookiez is Online 

這正是我所需要的,但它在頁面的最頂部輸出,即不是我所需要的。當我試圖把echo $this->truename;在正確位置,它呈現的實際頁面上,輸出

Cookiez is Online 

只得到第二個工作人員的ID (80)數組中,雖然我們都在同一登錄時間。

此外,這是我使用的代碼attempt獲得相同的輸出作爲工作foreach聲明。這也在課堂上呈現的頁面上。

foreach ($this->staffAdmins as $staff){ 
    if ($this->result == 1){ 
     foreach ($this->staffmem as $logged){ 
     echo $logged['truename']; 
     } 
    } 
} 

回答

1

你可以做一個陣列用於登錄的用戶這樣

$arr_logged_users = array(); // array to store logged in users 

foreach ($this->view->staffAdmins as $query) { 
    //Are they logged in? 
    $sql = "SELECT * FROM point WHERE uid = :ID AND zoneid > -1"; 
    $arr = array(":ID" => $query); 
    $this->view->result = $this->database->DBCtr($sql, $arr); 
    //Get their details! 
    $sql = "SELECT * FROM users WHERE ID = :ID"; 
    $arr = array(":ID" => $query); 
    $this->view->staffmem = $this->database->DBQry($sql, $arr); 
    $this->view->name = $this->view->staffmem[0]['name']; 
    $this->view->truename = $this->view->staffmem[0]['truename']; 
    if ($this->view->result == 1){ 
     $arr_logged_users [] = $this->view->truename; // assign here to array 
    } 
} 

現在你可以使用任何你想這樣

foreach($arr_logged_users as $val) 
{ 
    echo $val; 
} 
+0

很不錯的答案在$arr_logged_users,我調整了它位,它很好用! – tomirons

+0

@ Hulu8004歡迎您 –