Forum Moderators: coopster
<?php
$contractlist = array();
foreach($row_apartments as $apartments)
{
if(!in_array($apartments['contract_id'], $contractlist))
{
$contractlist[$apartments['contract_id']] = $apartments['contract_id'];
}
if(!in_array($apartments['contract_id'][$apartments['building_no']], $contractlist))
{
$contractlist[$apartments['contract_id']][$apartments['building_no']] = $apartments['building_no'];
}
$contractlist[$apartments['contract_id']][$apartments['building_no']][$apartments['apartment_no']] = $apartments['apartment_no'];
}
?>
Fatal error: Cannot use string offset as an array in dir on line 199
if( !isset($contractlist[$apartments['contract_id']]) {
$contractlist[$apartments['contract_id']] = $apartments['contract_id'];
}
// etc
if(!in_array($apartments['contract_id'], $contractlist))
{
$contractlist[$apartments['contract_id']] = $apartments['contract_id'];
}
$apartments['contract_id']
$apartments['contract_id']Should be an array, and even the
$apartments['building_no']should be another array in the contract id array.
$contractlist[$apartments['contract_id']][$apartments['building_no']]
$row_apartments = array(
array('contract_id' => 3, 'building_no' => 123, 'apartment_no' => 7),
array('contract_id' => 4, 'building_no' => 124, 'apartment_no' => 2),
array('contract_id' => 5, 'building_no' => 125, 'apartment_no' => 6),
array('contract_id' => 8, 'building_no' => 126, 'apartment_no' => 9),
array('contract_id' => 3, 'building_no' => 126, 'apartment_no' => 1),
array('contract_id' => 3, 'building_no' => 126, 'apartment_no' => 5),
);
$contractlist = array();
foreach($row_apartments as $apartments) {
if( !isset($contractlist[$apartments['contract_id']]) ) {
$contractlist[$apartments['contract_id']] = array();
}
if( !isset($contractlist[$apartments['contract_id']][$apartments['building_no']]) ) {
$contractlist[$apartments['contract_id']][$apartments['building_no']] = array();
}
$contractlist[$apartments['contract_id']][$apartments['building_no']][$apartments['apartment_no']] = array();
}
echo '<pre>';
print_r($contractlist);
echo '</pre>';
exit();
if( !isset($contractlist[$apartments['contract_id']]) ) {
$contractlist[$apartments['contract_id']] = array();
}
foreach($contractlist as $contract_id => $building) {
echo '<div><b>Contract-' . $contract_id . '</b></div>';
foreach($building as $building_no => $appartment) {
echo '<div style="padding-left: 20px;">Building-' . $building_no . '</div>';
foreach($appartment as $appartment_no => $details) {
echo '<div style="padding-left: 40px;">Appartment-' . $appartment_no . ': ' . $details . '</div>';
}
}
}
array_push($contractlist[$apartments['contract_id']][$apartments['building_no']],$apartments['apartment_no']);
Array
(
[3] => Array
(
[123] => Array
(
[0] => 7
)
[126] => Array
(
[0] => 1
[1] => 5
)
)
[4] => Array
(
[124] => Array
(
[0] => 2
)
)
[5] => Array
(
[125] => Array
(
[0] => 6
)
)
[8] => Array
(
[126] => Array
(
[0] => 9
)
)
)
<table border="1">
<tr><th>Contract No</th>
<th>Building Number</th>
<th>Apartment Number</th>
</tr>
<tr>
<td rowspan="5">123</td>
<td rowspan="3">10</td>
<td>101</td>
</tr>
<tr>
<td>102</td></tr>
<tr><td>103</td></tr>
<tr><td rowspan="2">11</td>
<td>201</td>
</tr>
<tr><td>202</td></tr>
</table>
function total_apartments($contract_id, $contractlist) {
$result = 0;
foreach( $contractlist[$contract_id] as $key => $value) {
$result += count($value);
}
return $result;
}
$row_apartments = mysql_fetch_assoc($apartments);
$contractlist = array();
do {
if( !isset($contractlist[$row_apartments['contract_id']]) ) {
$contractlist[$apartment['contract_id']] = array();
}
if( !isset($contractlist[$row_apartments['contract_id']][$row_apartments['building_no']]) ) {
$contractlist[$row_apartments['contract_id']][$row_apartments['building_no']] = array();
}
$contractlist[$row_apartments['contract_id']][$row_apartments['building_no']][$row_apartments['apartment_no']] = array();
} while($row_apartments = mysql_fetch_assoc($apartments));
Array
(
[] => Array
(
)
[1] => Array
(
[1] => Array
(
[2] => Array
(
)
)
)
[2] => Array
(
[1] => Array
(
[101] => Array
(
)
[102] => Array
(
)
)
)
)
Contract Number:-
Contract Number:- 1
---Building Number:- 1
------Apartment Number:- 2
Contract Number:- 2
---Building Number:- 1
------Apartment Number:- 101
------Apartment Number:- 102
$row_apartments = mysql_fetch_assoc($apartments);
$contractlist = array();
do {
if( !isset($contractlist[$row_apartments['contract_id']]) ) {
$contractlist[$apartment['contract_id']] = array();
}
if( !isset($contractlist[$row_apartments['contract_id']][$row_apartments['building_no']]) ) {
$contractlist[$row_apartments['contract_id']][$row_apartments['building_no']] = array();
}
$contractlist[$row_apartments['contract_id']][$row_apartments['building_no']][$row_apartments['apartment_no']] = array();
} while($row_apartments = mysql_fetch_assoc($apartments));
Array
(
[] => Array
(
)
[1] => Array
(
[1] => Array
(
[2] => Array
(
)
)
)
[2] => Array
(
[1] => Array
(
[101] => Array
(
)
[102] => Array
(
)
)
)
)
Contract Number:-
Contract Number:- 1
---Building Number:- 1
------Apartment Number:- 2
Contract Number:- 2
---Building Number:- 1
------Apartment Number:- 101
------Apartment Number:- 102
if( !isset($contractlist[$row_apartments['contract_id']]) ) {
$contractlist[$apartment['contract_id']] = array();
}
<?php
foreach($contractlist as $contract_id => $building){
$total=0;
foreach($building as $building_no => $apartment){
echo 'Total Height Required for ' . $building_no . ' is = ' . $row = count($apartment,1) . "<br/>";
$total += count($apartment,1);
}
echo 'Total height required for contract segment = ' . $total . '<br/><br/>';
}
?>
Array
(
[3] => Array
(
[123] => Array
(
[7] => Array()
)
[126] => Array
(
[1] => Array()
[5] => Array()
)
)
[4] => Array
(
[124] => Array
(
[2] => Array()
)
)
[5] => Array
(
[125] => Array
(
[6] => Array()
)
)
[8] => Array
(
[126] => Array
(
[9] => Array()
)
)
)
I want to have something like $contractlist(
contract1(building1(apartment1, apartment2, buildingproperty), building2, building3, contractproperty),
contract2(building1(apartment1,buildingproperty), contractproperty)... etc....)
Where buildingproperty and contractproperty contains information such as the required rowspan, color, etc....
Array
(
[3] => Array
(
[123] => Array
(
[7] => Array()
[buildingproperty] => Array
(
Height=2, color=2,etc...
)
)
[contractproperty] => Array
(
Height=2, color=2,etc...
)
)
etc...
)
foreach($contractlist as $contract_id => $building){
$totalcontractrows=0;
foreach($building as $building_no => $apartment){
$row = count($apartment,1);
$contractlist[$contract_id][$building_no]["property"] = array("height" => $row);
$totalcontractrows += count($apartment,1);
}
$contractlist[$contract_id]["property"] = array("height" => $totalcontractrows);
}
Array
(
[1] => Array
(
[1] => Array
(
[1] => Array
(
)
[2] => Array
(
)
[property] => Array
(
[height] => 2
)
)
[property] => Array
(
[height] => 2
)
)
[2] => Array
(
[2] => Array
(
[101] => Array
(
)
[102] => Array
(
)
[property] => Array
(
[height] => 2
)
)
[property] => Array
(
[height] => 2
)
)
)
<table border="1">
<tr>
<th>Contract Number</th>
<th>Building Number</th>
<th>Apartment Number(s)</th>
</tr>
<?php
foreach($contractlist as $contract_id => $building){
echo '<tr>' . '<td rowspan="' . $contractlist[$contract_id]["property"]["height"] . '">' . $contract_id . '</td>';
$i=0;
foreach($building as $building_no => $apartment){
if($i == 0){
echo '<td rowspan="' . $contractlist[$contract_id][$building_no]["property"]["height"] . '">' . $building_no. '</td>';
}
elseif($i!=0){
echo '<tr><td rowspan="' . $contractlist[$contract_id][$building_no]["property"]["height"] . '">' . $building_no. '</td>';
}
$i++;
$i2=0;
foreach($apartment as $apartment_detail => $details){
if($i2 == 0){
echo '<td>' . $apartment_detail . '</td></tr>';
}
elseif($i2!=0){
echo '<tr><td>' . $apartment_detail . '</td></tr>';
}
$i2++;
}
}
}
?>
</table>
<table border="1">
<tr>
<th>Contract Number</th>
<th>Building Number</th>
<th>Apartment Number(s)</th>
</tr>
<tr><td rowspan="2">1</td><td rowspan="2">1</td><td>1</td></tr><tr><td>2</td></tr><tr><td>property</td></tr><tr><td rowspan="">property</td><td>height</td></tr><tr><td rowspan="2">2</td><td rowspan="2">2</td><td>101</td></tr><tr><td>102</td></tr><tr><td>property</td></tr><tr><td rowspan="">property</td><td>height</td></tr> </table>