Re: Foreach Array Help
| From: | Rob Adams | Date: | Tue, 14 Oct 2003 13:45:53 +0000 |
| Subject: | Re: Foreach Array Help | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-166064@lists.php.net to get a copy of this message | ||
"Jed R. Brubaker" <jed.brubaker@psych.utah.edu> wrote in message
news:20031014065844.88206.qmail@pb1.pair.com...
> Okay, total newbie when it comes to arrays, and I could really use some
> help. I sure this will be an easy one for you veterans out there.
>
> Here is the array ($code):
> array(2) {
> ["total"]=>
> int(1)
> ["assign"]=>
> array(1) {
> [1]=>
> array(3) {
> ["type"]=>
> string(10) "Transcript"
> ["rows"]=>
> string(3) "603"
> ["codeapply"]=>
> array(1) {
> [1]=>
> array(3) {
> ["codeset"]=>
> string(23) "FFT 6 Level Code System"
> ["code_rows"]=>
> string(3) "302"
> ["code_complete"]=>
> string(1) "2"
> }
> }
> }
> }
> }
>
> Here is the output code:
> foreach ($this->code['assign'] as $assign => $details)
> {
> foreach ($assign['codeapply'] as $codeapply => $ca_details)
> {
> echo "<tr>";
> echo "<td>";
> echo $details['type']." ".$assign;
> echo "</a>";
> echo "</td>";
> echo "<td>";
> echo $ca_details['codeset'];
> echo "</td>";
> echo "<td>";
> echo
> $ca_details['code_complete']."/".$ca_details['code_rows']."
> Items Coded";
> echo "</td>";
> echo "<td>";
> printf (" %.0d%%",
> ($ca_details['code_complete']/$ca_details['code_rows'])*100);
> echo "</td>";
> echo "</tr>";
> }
> }
>
> Output error:
> Warning: Cannot use a scalar value as an array
> Warning: Invalid argument supplied for foreach()
>
> Conceptually and practically I have been struggling with how to navigate
> levels of the arrays which are defined by a variable (e.g.
> $code['assign'][$i] for the assign ID and $code['assign'][$i][$j] for the
if $code['assign'][$i] has some integer value, then it is not an array.
if $code['assign'][$i][$j] has some integer value, then $code['assign'][$i]
is an array.
You have two mutually exclusive possibilities there.
Probably, what you want to do is something like:
$code['assign'][$i]['aid'] = (assign ID);
$code['assign'][$i][$j] = (whatever you want here);
(which, for simplicity, translates into something like:)
$code['assign'][1]['aid'] = 1;
$code['assign'][1]['1'] = 11;
$code['assign'][1]['2'] = 12;
$code['assign'][1]['3'] = 13;
$code['assign'][1]['4'] = 14;
$code['assign'][1]['5'] = 15;
etc.
-- Rob
> codeapply ID on the assign ID).
>
> Thanks in advance!