2015-02-05 29 views
-3

$ abc = array(1,2,3,4,5,6,7,8);根據一些限制在html表中顯示數據

$ xyz = array(a,b,c,d,e,f);

我想從上面兩個數組中檢索所需格式的數據(實際上這些數組是從數據庫表中生成的)。數據將顯示在HTML TABLE中。我已經使用PHP MYSQL。例如,顯示的值可能不是一個序列,但有兩個不同的數組。爲了更清楚我想說,奇數列(從第一列開始)將顯示array abc的值,甚至會顯示array xyz的值。 請幫我一把。提前致謝。

enter image description here

+2

我們不能做你的工作。但起初,在我做任何事之前,我需要知道如何處理用戶數據。點擊_Go_後頁面是否重新加載?或者有沒有AJAX? – 2015-02-05 19:11:22

+0

這個問題還不清楚,因爲(一方面)它沒有把這個分割的規則描述成列。如果$ abc遠遠長於$ xyz,會不會添加空列?另外,是否有特定的理由只有3行?除此之外,由於瓦茨拉夫提到的原因,這是一個糟糕的問題。 – GolezTrol 2015-02-08 09:30:17

+0

你說得對,如果數組大小不匹配,它可能會添加空列,但邏輯是如果一個數組完成,另一個數組將從那裏追加。其實這是一個機構的考試座位計劃,他們希望自動生成不同課程的學生的卷號。例如假設物理學的學生將坐在第1,3,5行......和2,4,6 ......的化學位置上,並且如果座位留在奇數或偶數行,那麼生物學將從那裏繼續。儘管我知道它是一種批判邏輯,但我必須做到這一點。其他想法也表示讚賞。 – 2015-02-08 09:49:55

回答

1

這是一個非常有趣的問題。我想我找到了一個解決方案。

function table (array $array1, array $array2, $splitIndex) 
    { 
    $rows = array(); 
    $currentRow = 0; 

    // Make sure $array1 is the bigger of them 
    if (count ($array2) > count ($array1)) 
    { 
     $arrayTemp = $array2; 
     $array2 = $array1; 
     $array1 = $arrayTemp; 
    } 

    // Loop over each element of the array 
    foreach ($array1 as $index => $arrayValue) 
    { 
     $rows [$currentRow] [] = $arrayValue; 
     if (isset ($array2 [$index])) 
      $rows [$currentRow] [] = $array2 [$index]; 
     else 
      $rows [$currentRow] [] = ''; 

     $currentRow = ($currentRow == $splitIndex ? 0 : $currentRow + 1); 
    } 
    $output = '<table>'; 

    // Loop over the rows 
    foreach ($rows as $row) 
    { 
     $subOutput = '<tr>'; 

     // Loop over the columns in the rows 
     foreach ($row as $element) 
      $subOutput .='<td>'. $element .'</td>'; 

     $output .= $subOutput .'</tr>'; 
    } 

    // Return the output altogether. 
    return $output .'</table>'; 
} 

現在你可以使用:

echo table ([ 'i', 'b', 'a', 'e', 'b' ], ['1', '2', '3'], 2); 

的2表明,它會分裂在每兩行,就像是在你的榜樣3。

+0

感謝Aron,它根據我的需要工作,但可以限制表中的行數和列數,以便它只顯示適合表格的那些值。我也可以設置要顯示的數組中值的開始和結束範圍。希望你清楚。再次感謝你的幫助。 – 2015-02-08 17:51:46

+0

我對腳本做了一些更改。現在有了更多定製選項的新語法。 https://gist.github.com/Xesau/66d74336d1b91f81ed44 開始和結束範圍版本:https://gist.github.com/Xesau/c78f5e72f53db228a00a *用途*: '回聲keyValueTable([ '一' =>'b'....],0,array(),0,'\t',$ startIndex,$ length);' – Xesau 2015-02-09 11:49:02

+0

我無法調用該函數,我傳遞的參數爲空,請舉個例子。謝謝 – 2015-02-09 17:46:30