2016-11-04 15 views
0

我試圖轉換通過ForEach循環內的For循環獲取的數據。 我從下面的PHP代碼中獲取我期望的數據。問題是,當我嘗試將其轉換爲數組(包括爆炸的任何方法)時,我只獲得最後一個結果。我可以通過在循環內運行數組請求來獲知重複信息,但在循環外我只能得到最後一個結果。PHPExcel For循環數據到數組轉換

我正在使用PHPExcel。我沒有使用打開的文件,因爲我在故意移動文件之前從tmp文件加載這個數組。

我正在收集帶有數據的任何列的標題以構建我的數組(將被加載到下一個列表框中)。我知道有一個額外的逗號,但是一旦我可以正確提取它就可以修復。

以下代碼爲我提供了我的tmp文件的前3個標題:「Header1,Header2,Header3」 - 這是從以前在Excel網頁上建立表格的搜索中更改的。

foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { 
$highestRow   = $worksheet->getHighestDataRow(); // e.g. 10 
$highestColumn  = $worksheet->getHighestDataColumn(); // e.g 'F' 
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
$nrColumns = ord($highestColumn) - 64; 
for ($row = 1; $row < 2; ++ $row) { 
    for ($col = 0; $col < $highestColumnIndex; ++ $col) { 
     $cell = $worksheet->getCellByColumnAndRow($col, 1); 
     $val = $cell->getValue().','; 
     $dataType = PHPExcel_Cell_DataType::dataTypeForValue($val); 
print_r($val); //This is displaying what I expect to see "Header1,Header2,Header3," 
    } 
}} 

我曾嘗試這樣的代碼如下(以$ myarray的一起),但我得到的結果類似:"Header1,Array ([0] => Header1,) Header2,Array ([0] => Header2,) Header3,Array ([0] => Header3,)" or if outside the } "Array ([0] => Header3,)

$myString = $val; 
$myArray = explode(',',$myString,0); 
print_r($myArray); 

感謝您的幫助!

馬克

回答

0

在更換線下面的for循環

$ VAL = $細胞>的getValue() ''。

$ VAL = $細胞>的getValue() ''。。;

上面的一行會將您的結果一個接一個地用逗號分隔。

如果需要所有的在一個陣列然後更換下面線

$ myArray的爆炸=( '',$ myString的,0);

$ myArray的爆炸=( '',$的myString);