我對我的數組結果感到有點沮喪。理想情況下,我在我的應用程序中創建了一個表單製作模塊,我正在使用兩個不同的數組來建立我的數據庫列和Excel列。實質上,我使用數組提供的結果直接寫入一個php文件(Excel閱讀器文件)。爲了在Excel工作簿中建立差異,我在「excel_rows」數組中提出了一個標識符「page2」,「page3」等等。結合兩個不同數量的元素的單獨陣列
//my arrays
$table_columns = array('field1','field2','field3','field4','field5'); //fields
$excel_rows = array('c1','c2','page2','c3','c4','page3','c5'); //excel columns
從這裏..我去嘗試過濾數組鍵..
foreach(array_keys($excel_rows) as $key){
$page = array_search(strpos(trim($excel_rows[$key]),'page'),$excel_rows);
if(strpos(trim($excel_rows[$key]),'page') !== false){
$excel_row .= '$objTpl->setActiveSheetIndex('.(str_replace('page','',trim($excel_rows[$key])) -1).');<br/>'.PHP_EOL;
$table_columns[$key] = 0;
}
else {
$excel_row .= '$objTpl->getActiveSheet()->setCellValue(\''.trim($excel_rows[$key]).'\',$row[\''.trim($table_columns[$key]).'\']);<br/>'.PHP_EOL;
}
}
print $excel_row;
結果應該呼應了以下工作:
$objTpl->getActiveSheet()->setCellValue('c1', $row['field1']);
$objTpl->getActiveSheet()->setCellValue('c2', $row['field2']);
$objTpl->setActiveSheetIndex(1);<br/>
$objTpl->getActiveSheet()->setCellValue('c3', $row['field4']);
$objTpl->getActiveSheet()->setCellValue('c4', $row['field5']);
$objTpl->setActiveSheetIndex(2);
$objTpl->getActiveSheet()->setCellValue('c5', $row['']);
正如人們所看到我從結果中缺少'field3','cs'產生並排空行而不是「field5」。
我假設像array_compare或array_combine是解決方案 - 我只是不能把它放在一起。
一切工作可愛與模塊赦免上面的數組代碼。任何與此有關的幫助將真誠地感謝!
-Regards。
問題是field3與page2位於同一個鍵上,這就是爲什麼下一個字段是field4而不是field3,因爲您使用的是同一個鍵。解決方案將在頁面命令的同一個鍵上插入一個空字符串。 – 2014-12-27 21:46:23
是的..這部分是給定的。嘗試確定是否存在以避免必須在設置/插入時爲「table_columns」提供空字符串。 – pm284 2014-12-27 21:58:35
創建一個多維數組不是更好嗎? 'array(「page1」=> array(「c1,c2」),「page2」=> array(「c3」,「c4」),「page3」=> array(「c5」));' – 2014-12-27 22:04:41