PHP 数组未填满
PHP array not filled
我有这个代码:
$previousParam = $table['rows'][0]['groupParam'];
$linesMiddleHeader=array();
$lineMiddleHeader=null;
if(array_key_exists("groupParam", $options)){
$lineNumber+=2;
$worksheet->setCellValue('A'.$lineNumber, $previousParam);
$worksheet->getStyle('A'.$lineNumber)->applyFromArray($borderStyle);
}
foreach ($table['rows'] as $rowindex => $row) {
$nbColumn=count($row['cells']);
// if(array_key_exists ("groupParam", $options)){
// $this->getLogger()->debug(":".$row['groupParam']);
// }
if($previousParam!=$row['groupParam']){
$lineNumber+=3;
$lineMiddleHeader=$lineNumber;
$worksheet->setCellValue('A'.$lineMiddleHeader, $row['groupParam']);
$worksheet->getStyle('A'.$lineNumber)->applyFromArray($borderStyle);
}
$linesMiddleNumber[$rowindex]=$lineMiddleHeader;
$previousParam = $row['groupParam'];
foreach ($row['cells'] as $column => $cell) {
// header
if ($rowindex == 0) {
$title = $table['headers'][$column];
$this->setCellValue($worksheet, $column, $previousLineNumber + 1, $title);
$headRow = $previousLineNumber + 1;
if(strcmp($title['title_code'], "Prix")==0){
$colPrice = PHPExcel_Cell::stringFromColumnIndex($column);
}
}
// var_dump($linesMiddleHeader);
if(isset($linesMiddleHeader[$rowindex]) && $rowindex == $linesMiddleHeader[$rowindex]){
$title = $table['headers'][$column];
$this->setCellValue($worksheet, $column, $linesMiddleHeader[$rowindex]-1, $title);
}
// cellule
if ($row['level'] == 0) {
if ($column == 0) {
$lineNumber++;
}
$columnCell=$column;
$this->setCellValue($worksheet, $columnCell, $lineNumber + $previousLineNumber, $cell);
}
$worksheet->getColumnDimensionByColumn($column)->setAutoSize(true);
}
}
我想做的是用$lineMiddleHeader
的不同值填充$linesMiddleHeader[]
。
但是当我查看它时,数组完全是空的,我不明白为什么。也许那只是我犯的一个愚蠢的错误,如果是这样的话,要么隐藏得很好,要么我太笨了。
无论如何,如果有人能够帮助我,那真是太棒了,考虑到我自己疯了。
您的数组不是 $linesMiddleHeader,而是 $linesMiddleNumber。
更改为:
if(isset($linesMiddleNumber[$rowindex]) && $rowindex == $linesMiddleNumber[$rowindex]){
我有这个代码:
$previousParam = $table['rows'][0]['groupParam'];
$linesMiddleHeader=array();
$lineMiddleHeader=null;
if(array_key_exists("groupParam", $options)){
$lineNumber+=2;
$worksheet->setCellValue('A'.$lineNumber, $previousParam);
$worksheet->getStyle('A'.$lineNumber)->applyFromArray($borderStyle);
}
foreach ($table['rows'] as $rowindex => $row) {
$nbColumn=count($row['cells']);
// if(array_key_exists ("groupParam", $options)){
// $this->getLogger()->debug(":".$row['groupParam']);
// }
if($previousParam!=$row['groupParam']){
$lineNumber+=3;
$lineMiddleHeader=$lineNumber;
$worksheet->setCellValue('A'.$lineMiddleHeader, $row['groupParam']);
$worksheet->getStyle('A'.$lineNumber)->applyFromArray($borderStyle);
}
$linesMiddleNumber[$rowindex]=$lineMiddleHeader;
$previousParam = $row['groupParam'];
foreach ($row['cells'] as $column => $cell) {
// header
if ($rowindex == 0) {
$title = $table['headers'][$column];
$this->setCellValue($worksheet, $column, $previousLineNumber + 1, $title);
$headRow = $previousLineNumber + 1;
if(strcmp($title['title_code'], "Prix")==0){
$colPrice = PHPExcel_Cell::stringFromColumnIndex($column);
}
}
// var_dump($linesMiddleHeader);
if(isset($linesMiddleHeader[$rowindex]) && $rowindex == $linesMiddleHeader[$rowindex]){
$title = $table['headers'][$column];
$this->setCellValue($worksheet, $column, $linesMiddleHeader[$rowindex]-1, $title);
}
// cellule
if ($row['level'] == 0) {
if ($column == 0) {
$lineNumber++;
}
$columnCell=$column;
$this->setCellValue($worksheet, $columnCell, $lineNumber + $previousLineNumber, $cell);
}
$worksheet->getColumnDimensionByColumn($column)->setAutoSize(true);
}
}
我想做的是用$lineMiddleHeader
的不同值填充$linesMiddleHeader[]
。
但是当我查看它时,数组完全是空的,我不明白为什么。也许那只是我犯的一个愚蠢的错误,如果是这样的话,要么隐藏得很好,要么我太笨了。
无论如何,如果有人能够帮助我,那真是太棒了,考虑到我自己疯了。
您的数组不是 $linesMiddleHeader,而是 $linesMiddleNumber。
更改为:
if(isset($linesMiddleNumber[$rowindex]) && $rowindex == $linesMiddleNumber[$rowindex]){