2014-01-29 71 views
-7

尊敬的計算器用戶,PHP的if語句錯誤(多陣列)

我目前有顯示使用PHP的if語句,這是我的立場目前某些環節的問題:

<div class="control-group"> 
       <div class="controls"> 
             <?php if(in_array(6, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="rn.php"><i class="icon-user"></i><?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(7, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="aa.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(8, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="hr.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(9, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="oo.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(10, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="sk.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(11, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="fs.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(12, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="ok.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(13, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="hag.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(14, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="my.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(15, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="ra.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(16, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="hu.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(17, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="am.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(18, $_SESSION['jigowatt']['user_level'])) { ?> 
       <li><a href="ia.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(19, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="sq.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 
       <?php if(in_array(20, $_SESSION['jigowatt']['user_level'])) { ?> 
       <a href="sq2.php"><i class="icon-user"></i> <?php _e('Reports & Letters'); ?></a> 
       <?php } ?> 

它只顯示一個用戶,其餘不顯示。

任何幫助將不勝感激。

+1

加上'print_r($ _ SESSION ['jigowatt']);'在你的問題 –

+2

哇......哇。你有沒有考慮使用Case語句? –

+4

這段代碼傷害了我的眼睛 – 2014-01-29 18:53:30

回答

0

首先,讓我們清理代碼:

<div class="control-group"> 
    <div class="controls"> 
<?php 
    $file = array('rn', 'aa', 'hr', 'oo', 'sk', 'fs', 'ok', 'hag', 'my', 'ra', 'hu', 'am', 'ia', 'sq', 'sq2'); 

    for ($i=6; $i<=20; $i++) { 
    if(in_array($i, $_SESSION['jigowatt']['user_level'])) { 
     echo '<a href="'.$file[$i-6].'.php"><i class="icon-user"></i>'. _e('Reports & Letters'). '</a>'; 
    } 
    } 
?> 

應該環繞「報告&快報」的<i class=...> </i>標籤?現在他們不適用於文本。另外,你可以打破;在第一次匹配之後出於for循環,除非您實際需要針對所有情況進行測試。是否user_level是一個數組本身(以便可以有多個匹配)?

+0

謝謝 - 非常感謝您的幫助。是的,user_level本身就是一個數組,它會檢查用戶是否匹配它,如果是,它會顯示正確的鏈接/頁面。 – user3250274

+0

然後你想說'... user'>'。_e(...)。'';'? –

+0

是的 - 目前有23個關卡,每個用戶都有關卡。爲每個用戶設置頁面,一些頁面有多個訪問權限(所以有2個或更多的用戶級別訪問權限)。我將添加你的代碼並閱讀更多關於switch語句和in_arrays等等。我仍然在學習,一定會犯錯 - 我希望我和你們中的一些人一樣好,但我不是(我希望在幾年內)。再次感謝您的幫助,與其他人不同,您非常有幫助(與其他嘗試實際幫助的人一起) 。 – user3250274