2014-02-06 36 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欢迎您 –