2016-03-23 74 views
0

嗨,我正在做這個登錄,我做如果和其他語句來檢查用戶是否可以訪問。我有這個部分,其中兩個或更多類型的用戶可以訪問此部分,但並不是所有的用戶..我已經做if條件中的兩個條件codeigniter

<?php foreach($_SESSION['datauser'] as $a){ 

if($a->USERTYPE == '1' || $a->USERTYPE == '2'){ 

?> do this 

<?php }} ?> 

,但如果真的發生了,對於每一個是真實的病情,它的條件例如

<?php foreach($_SESSION['datauser'] as $a){ 

if($a->USERTYPE == '1' || $a->USERTYPE == '2'){ 

    echo 'name'; 

}} ?> 

如果用戶類型== 1和== 2它輸出namename

我想是,如果用戶類型== 1它將輸出名稱,如果用戶類型是==它將輸出也命名,如果用戶類型是兩者都會輸出名稱。

+0

您能否澄清一下預期的結果? – Fabio

+0

請從第二塊代碼中移除額外的php。 –

+0

輸出看起來是正確的,'usertype'是怎麼樣的呢?請澄清那部分 –

回答

0

一旦條件爲真,您可以使用break來結束循環,例如,

<?php foreach($_SESSION['datauser'] as $a){ 

    if($a->USERTYPE == '1' || $a->USERTYPE == '2'){ 

     echo 'name'; 
     break; 
    } 
}?> 
0

嘗試這種

<?php 
$a=""; 
foreach($_SESSION['datauser'] as $a){ 
if($a->USERTYPE == '1' || $a->USERTYPE == '2'){ 
    $a='name'; 
} 
} 
echo $a; 
?> 
0

由於自變量$_SESSION['datauser']是具有多個值。

您的foreach循環多次,因此回答即將到來namename

如果您希望只打印一個名稱。

請嘗試下面的代碼。

<?php $name=""; 
    foreach($_SESSION['datauser'] as $a){ 

    if($a->USERTYPE == '1' || $a->USERTYPE == '2'){ 
     if($name==""){ 
      $name="name"; 
     } 
    } 
} 
$name 
?>