public function testGetKeyRefByRowIndexReturnsReference() { $columnIndexes = array(1, 2); $keyIndex = new PivotKeyIndex($this->dataTable, $columnIndexes); $key1 =& $keyIndex->getKeyRefByRowIndex(0); // US,TX $key2 =& $keyIndex->getKeyRefByRowIndex(3); // US,TX $this->assertSame($key1, $key2, "Expect the exact same referenced object"); }
public function &generateTable() { $data =& $this->pivotDescription->getDataTable(); $rowFieldIndexes = $this->getRowFieldIndexes(); $columnFieldIndexes = $this->getColumnFieldIndexes(); $dataFieldIndexes = $this->getDataFieldIndexes(); $this->table = array(); $this->rowKeyIndex = new PivotKeyIndex($data, $rowFieldIndexes); $this->columnKeyIndex = new PivotKeyIndex($data, $columnFieldIndexes); $numRows = $data->getNumberOfRows(); for ($ri = 0; $ri < $numRows; $ri++) { $row = $data->getRow($ri); $rowKey =& $this->rowKeyIndex->getKeyRefByRowIndex($ri); $rowKey->addRowIndex($ri); $columnKey =& $this->columnKeyIndex->getKeyRefByRowIndex($ri); $columnKey->addRowIndex($ri); foreach ($dataFieldIndexes as $columnIndex) { $this->accumulateData($row, $rowKey, $columnKey, $columnIndex); } } return $this->table; }