Solved

# 2 dimensional arrays

Posted on 2002-06-20
245 Views
hey,

i filled a 2 - dimensional array within a loop. now i'm trying to get back my values with an index. but i just have the last value i wrote to the array. looks like every time i write something new to the array the rest is deleted ?!?

0
Question by:Zaim
• 4
• 2
• 2

LVL 40

Expert Comment

ID: 7096065
\$iN = 8; // How many locations;
\$aC[0][0] = 0;
\$aA[0][0] = 0;
\$aP[0][0] = 0;

for (\$iI = 0; \$iI < \$iN; \$iI++)
{
for (\$iJ = 0; \$iJ < \$iN; \$iJ++)
{
\$aA[\$iI][\$iJ] = 0;
\$aC[\$iI][\$iJ] = 9999;
\$aP[\$iI][\$iJ] = 0;
}
}

This is a snippet of my multi-dim array for working out the shortest route between 2 points.

What does your code look like?
0

LVL 40

Expert Comment

ID: 7096328
I can then access them ...

for (\$iK = 0; \$iK < \$iN; \$iK++)
{
for (\$iI = 0; \$iI < \$iN; \$iI++)
{
for (\$iJ = 0; \$iJ < \$iN; \$iJ++)
{
if ((\$aA[\$iI][\$iK] + \$aA[\$iK][\$iJ]) < \$aA[\$iI][\$iJ])
{
\$aA[\$iI][\$iJ] = \$aA[\$iI][\$iK] + \$aA[\$iK][\$iJ];
\$aP[\$iI][\$iJ] = \$iK;
}
}
}
}
0

LVL 4

Expert Comment

ID: 7097813
can u post ur code here ?

Thanks,
Lk
0

Author Comment

ID: 7097868
i'm getting my data from an oracle - database. i tried the upper solution to get data through a loop, but still the same prob: i can only get the last entry

here's my code:

if (\$flag)
{
//if (session_is_registered("datenarray")) session_unregister("datenarray");
\$flag=0;
//settype(\$datenarray,"array");

for(\$t=0;\$t<\$maxid;\$t++)
{

ora_fetch(\$cursor);

\$id=ora_getcolumn(\$cursor,0);
err_detect(\$cursor);
\$date=ora_getcolumn(\$cursor,1);
err_detect(\$cursor);
\$comment=ora_getcolumn(\$cursor,2);
err_detect(\$cursor);
\$erledigt=ora_getcolumn(\$cursor,6);
err_detect(\$cursor);
\$prio=ora_getcolumn(\$cursor,7);
err_detect(\$cursor);

\$datenarray[t][0] = \$id;
\$datenarray[t][1] = \$date;
\$datenarray[t][2] = \$erledigt;
\$datenarray[t][3] = \$prio;
\$datenarray[t][4] = \$comment;

//echo \$datenarray[t][0].\$datenarray[t][1].\$datenarray[t][2].\$datenarray[t][3].\$datenarray[t][4];
// ---> date i just put into the array is there
echo "<br>";
echo count(\$datenarray);          // ---> always "1"
echo "<br>";
//echo \$id;                              //working well, id is descending, like i wanted in my query
}

}

for(\$i;\$i < \$maxid;\$i++)
{

echo "<tr>";
/*
for(\$ij=0;\$ij < 5;\$ij++)
{
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][\$ij]."</td>";
}
*/

echo "<td align = 'center' valign = 'center'> <input type='submit' name = id style = 'WIDTH: 80' value=\$id>".\$datenarray[\$i][0]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][1]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][2]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][3]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][4]."</td>";

echo "</tr>";

}

echo "</table>";

?>
0

LVL 4

Accepted Solution

lokeshv earned 50 total points
ID: 7097875
\$datenarray[t][0] = \$id;
\$datenarray[t][1] = \$date;
\$datenarray[t][2] = \$erledigt;
\$datenarray[t][3] = \$prio;
\$datenarray[t][4] = \$comment

i think this should be '\$t' instead of just 't'

Hope this solves ur problem:o)

LK
0

Author Comment

ID: 7097924
i'm getting my data from an oracle - database. i tried the upper solution to get data through a loop, but still the same prob: i can only get the last entry

here's my code:

if (\$flag)
{
//if (session_is_registered("datenarray")) session_unregister("datenarray");
\$flag=0;
//settype(\$datenarray,"array");

for(\$t=0;\$t<\$maxid;\$t++)
{

ora_fetch(\$cursor);

\$id=ora_getcolumn(\$cursor,0);
err_detect(\$cursor);
\$date=ora_getcolumn(\$cursor,1);
err_detect(\$cursor);
\$comment=ora_getcolumn(\$cursor,2);
err_detect(\$cursor);
\$erledigt=ora_getcolumn(\$cursor,6);
err_detect(\$cursor);
\$prio=ora_getcolumn(\$cursor,7);
err_detect(\$cursor);

\$datenarray[t][0] = \$id;
\$datenarray[t][1] = \$date;
\$datenarray[t][2] = \$erledigt;
\$datenarray[t][3] = \$prio;
\$datenarray[t][4] = \$comment;

//echo \$datenarray[t][0].\$datenarray[t][1].\$datenarray[t][2].\$datenarray[t][3].\$datenarray[t][4];
// ---> date i just put into the array is there
echo "<br>";
echo count(\$datenarray);          // ---> always "1"
echo "<br>";
//echo \$id;                              //working well, id is descending, like i wanted in my query
}

}

for(\$i;\$i < \$maxid;\$i++)
{

echo "<tr>";
/*
for(\$ij=0;\$ij < 5;\$ij++)
{
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][\$ij]."</td>";
}
*/

echo "<td align = 'center' valign = 'center'> <input type='submit' name = id style = 'WIDTH: 80' value=\$id>".\$datenarray[\$i][0]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][1]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][2]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][3]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][4]."</td>";

echo "</tr>";

}

echo "</table>";

?>
0

Author Comment

ID: 7098134
i'm getting my data from an oracle - database. i tried the upper solution to get data through a loop, but still the same prob: i can only get the last entry

here's my code:

if (\$flag)
{
//if (session_is_registered("datenarray")) session_unregister("datenarray");
\$flag=0;
//settype(\$datenarray,"array");

for(\$t=0;\$t<\$maxid;\$t++)
{

ora_fetch(\$cursor);

\$id=ora_getcolumn(\$cursor,0);
err_detect(\$cursor);
\$date=ora_getcolumn(\$cursor,1);
err_detect(\$cursor);
\$comment=ora_getcolumn(\$cursor,2);
err_detect(\$cursor);
\$erledigt=ora_getcolumn(\$cursor,6);
err_detect(\$cursor);
\$prio=ora_getcolumn(\$cursor,7);
err_detect(\$cursor);

\$datenarray[t][0] = \$id;
\$datenarray[t][1] = \$date;
\$datenarray[t][2] = \$erledigt;
\$datenarray[t][3] = \$prio;
\$datenarray[t][4] = \$comment;

//echo \$datenarray[t][0].\$datenarray[t][1].\$datenarray[t][2].\$datenarray[t][3].\$datenarray[t][4];
// ---> date i just put into the array is there
echo "<br>";
echo count(\$datenarray);          // ---> always "1"
echo "<br>";
//echo \$id;                              //working well, id is descending, like i wanted in my query
}

}

for(\$i;\$i < \$maxid;\$i++)
{

echo "<tr>";
/*
for(\$ij=0;\$ij < 5;\$ij++)
{
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][\$ij]."</td>";
}
*/

echo "<td align = 'center' valign = 'center'> <input type='submit' name = id style = 'WIDTH: 80' value=\$id>".\$datenarray[\$i][0]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][1]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][2]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][3]."</td>";
echo "<td align = 'center' valign = 'center'>".\$datenarray[\$i][4]."</td>";

echo "</tr>";

}

echo "</table>";

?>
0

Author Comment

ID: 7098155
thanks for help.

that's the kind of mistakes nobody thinks to make but everyone does. there it needs 2 other eyes to look at ;)

----> it's workin'
0

## Featured Post

Both Easy and Powerful How easy is PHP? http://lmgtfy.com?q=how+easy+is+php (http://lmgtfy.com?q=how+easy+is+php)  Very easy.  It has been described as "a programming language even my grandmother can use." How powerful is PHP?  http://en.wikiped…