2016-05-10 24 views
0

嗨,大家好,我在顯示數組時遇到問題...如何顯示數組中的數組使用 - PHP

這是我的數組。

[ 
    "ABM" => [ "" => [ "" => 0 ] ], 
    "GAS" => [ "one" => [ "F" => 1 ] ], 
    "HUMMS" => [ "" => [ "" => 0 ] ], 
    "STEM" => [ "" => [ "" => 0 ] ] 
]; 

這是我該陣列代碼:

$array = array(); 
$array[$p['CourseCode']][$p['YearLevel']][$p['Gender']]+=$p['count']; 

,我想在這裏顯示出來:

 ---ONE--- ---TWO--- 
CODE | M | F | M | F | 
    |  |  |  |  | 

,如果它是 '一',它會顯示COUNT來 - --ONE ---或者--- --- TWO ---

如果它是'F',它將顯示COUNT到F或el SE到M

對不起,我的限制english..and可憐的解釋編程即時通訊只是一個新手..謝謝

+5

使您的數組變得清新易讀。 .. –

+0

@Frayne Konok我該怎麼做? – KUPSKIE

+0

你是什麼意思由CODE? –

回答

0

您可能要像

<?php 

$data = 
[ 
    "ABM" => [ "" => [ "" => 0 ] ], 
    "GAS" => [ "one" => [ "F" => 1 ] ], 
    "HUMMS" => [ "" => [ "" => 0 ] ], 
    "STEM" => [ "" => [ "" => 0 ] ], 
    "COL1" => [ "one" => [ "" => 1 ] ], 
    "COL2" => [ "one" => [ "F" => 2 ] ], 
    "COL3" => [ "" => [ "" => 3 ] ], 
    "COL4" => [ "" => [ "F" => 4 ] ], 
]; 


$rows = []; 
foreach($data as $key=>$arr) 
{ 
    $row = array_fill(0, 5, ''); 
    $row[1+((('one' !== key($arr))<<1) | ('F' === key(current($arr))))] = '' . current(current($arr)); 
    $row[0] = $key; 
    $rows[] = $row; 
} 

?> 

<table border="1"> 
    <tbody> 
    <tr> <td rowspan="2"></td> <td colspan="2"> ONE </td> <td colspan="2"> TWO </td> </tr> 
    <tr>      <td>M</td> <td>F</td>  <td>M</td> <td>F</td> </tr> 
<?php foreach($rows as &$row): ?> 
    <tr> 
<?php foreach($row as &$col): ?> 
     <td><?php echo $col; ?></td> 
<?php endforeach; ?> 
    </tr> 
<?php endforeach; ?> 
    </tbody> 
</table> 


我們有一個堆疊陣列作爲每一行數據源。鑰匙決定在哪些列的值被填充在

。(一個 | )=>(中號 | ˚F)=>值

這看起來像一棵二叉樹。讓我們來想想列一個/ M是數字0,而最後一列「兩/ F」號3.這意味着一個結果0或1和2 或3,或說:

一個0 +(0或1)

2 +(0或1)

如果+0+1決定M或F。在二進制數字,它看起來就像是:

0 = 00

1 = 01

2 = 10

因爲在這個數字中的位具有獨特的位置,我們可以只使用二進制或者分離而不是加法,即PHP中的|,這將使CPU更快地處理。

邏輯比較的結果是對整數1和0進行真或假求值。('one' !== key($arr))爲真/ 1當鍵不是「1」時,表示兩個。左移的0110(十進制2)。這是通過PHP中的<< bit_count完成的。 Dependend M/F添加0或1(或 - 分離)。因爲我們希望第0列中的「代碼」,所以我們在計算的數據列索引中加1,並在第0列中存儲「代碼」。

+0

w0w你好...謝謝 – KUPSKIE

0

我不會設計表你,但這裏是功能...

你需要在這裏做一些循環,使用3 foreach loop來訪問數組的最後一個深度。

$arr = [ 
    "ABM" => [ "" => [ "" => 0 ] ], 
    "GAS" => [ "one" => [ "F" => 1 ] ], 
    "HUMMS" => [ "" => [ "" => 0 ] ], 
    "STEM" => [ "" => [ "" => 0 ] ] 
]; 


foreach($arr as $key => $value){ 
    echo 'Code: '.$key."&nbsp;&nbsp;&nbsp;"; 
    foreach($value as $k1 => $v1){ 
     if($k1 == "one") 
      echo 'ONE: '.$k1."&nbsp;&nbsp;&nbsp;"; 
     else 
      echo 'TWO: '.$k1;  
     foreach($v1 as $k2 => $v2){ 
      if($k2 == 'F') 
       echo 'Gender: F - '.$v2."<br/>"; 
      else 
       echo 'Gender: M - '.$v2."<br/>"; 
     } 
    } 
} 

結果:

Code: ABM  TWO:  Gender: M - 0 
Code: GAS  ONE: one Gender: F - 1 
Code: HUMMS TWO:  Gender: M - 0 
Code: STEM TWO:  Gender: M - 0 
+1

謝謝@Frayne Konok – KUPSKIE

+0

歡迎,我知道你可以從這段代碼設計你的願望'table/div'。祝你一切順利。 –