Undefined index
ik ben op de errata sectie van de publisher site geweest, maar daar werd geen
melding van dit probleem gemaakt.
Zou iemand mij kunnen helpen ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
$population = array("New York" => array("state" => "ny", "pop" => 8008278),
"Los Angeles" => array("state" => "ca", "pop" => 3694820),
"Chicago" => array("state" => "IL", "pop" => 2896016),
"Houston" => array("state" => "TX", "pop" => 1953631),
"Philadlephia" => array("state" => "PA", "pop" => 1517550),
"Phoenix" => array("state" => "AZ", "pop" => 1321045),
"San Diego" => array("state" => "CA", "pop" => 1223400),
"Dallas" => array("state" => "TX", "pop" => 1188580),
"San Antonio" => array("state" => "TX", "pop" => 1144646),
"Detroit" => array("state" => "MI", "pop" => 951270)
);
//use the state totals array to keep track of the states totals
$total_population = 0;
$state_totals = array();
echo "<table><tr><th>City</th><th>Population</th></tr>\n";
foreach($population as $city => $info) {
//$info is an array with two elements: pop (city population)
//and state (state name)
$total_population += $info["pop"];
//increment the $info["state"] element in $state_totals by $info["pop"]
//to keep track of the total population of state $info["state"]
$state_totals[$info["state"]] += $info["pop"];
echo "<tr><td>$city, {$info['state']}</td><td>{$info['pop']}</td></tr>\n";
}
//iterate through the $state_totals array to echo the per state totals
foreach ($state_totals as $state => $pop) {
echo "<tr><td>$state</td><td>$pop</td>\n";
}
echo "<tr><td>Total</td><td>$total_population</td></tr>\n";
echo "</table>\n";
?>
$population = array("New York" => array("state" => "ny", "pop" => 8008278),
"Los Angeles" => array("state" => "ca", "pop" => 3694820),
"Chicago" => array("state" => "IL", "pop" => 2896016),
"Houston" => array("state" => "TX", "pop" => 1953631),
"Philadlephia" => array("state" => "PA", "pop" => 1517550),
"Phoenix" => array("state" => "AZ", "pop" => 1321045),
"San Diego" => array("state" => "CA", "pop" => 1223400),
"Dallas" => array("state" => "TX", "pop" => 1188580),
"San Antonio" => array("state" => "TX", "pop" => 1144646),
"Detroit" => array("state" => "MI", "pop" => 951270)
);
//use the state totals array to keep track of the states totals
$total_population = 0;
$state_totals = array();
echo "<table><tr><th>City</th><th>Population</th></tr>\n";
foreach($population as $city => $info) {
//$info is an array with two elements: pop (city population)
//and state (state name)
$total_population += $info["pop"];
//increment the $info["state"] element in $state_totals by $info["pop"]
//to keep track of the total population of state $info["state"]
$state_totals[$info["state"]] += $info["pop"];
echo "<tr><td>$city, {$info['state']}</td><td>{$info['pop']}</td></tr>\n";
}
//iterate through the $state_totals array to echo the per state totals
foreach ($state_totals as $state => $pop) {
echo "<tr><td>$state</td><td>$pop</td>\n";
}
echo "<tr><td>Total</td><td>$total_population</td></tr>\n";
echo "</table>\n";
?>
Probleemstelling / Vraag ontbreekt.
,waar het in dit stukje code fout gaat.
Het is de uitleg van een oefening in een boek, die niet werkt.
Ik weet niet wat er fout gaat.
<error>
Notice: Undefined index: ny in C:\Program Files (x86)\wamp\www\php_sandbox3\chapter04\exercise4_7_1.php on line 34
Notice: Undefined index: ca in C:\Program Files (x86)\wamp\www\php_sandbox3\chapter04\exercise4_7_1.php on line 34
Notice: Undefined index: IL in C:\Program Files (x86)\wamp\www\php_sandbox3\chapter04\exercise4_7_1.php on line 34
Notice: Undefined index: TX in C:\Program Files (x86)\wamp\www\php_sandbox3\chapter04\exercise4_7_1.php on line 34
Notice: Undefined index: PA in C:\Program Files (x86)\wamp\www\php_sandbox3\chapter04\exercise4_7_1.php on line 34
Notice: Undefined index: AZ in C:\Program Files (x86)\wamp\www\php_sandbox3\chapter04\exercise4_7_1.php on line 34
Notice: Undefined index: CA in C:\Program Files (x86)\wamp\www\php_sandbox3\chapter04\exercise4_7_1.php on line 34
Notice: Undefined index: MI in C:\Program Files (x86)\wamp\www\php_sandbox3\chapter04\exercise4_7_1.php on line 34
Heb bovenstaande code gekopieerd en getest en werkt probleemloos?!
ik ben al meer dan een week 10 uur per dag met php bezig.
heb verder geen problemen met code gehad.
$state_totals[$info["state"]] += $info["pop"];
Moet dit zijn:
if(!isset($state_totals[$info["state"]]))
{
$state_totals[$info["state"]] = 0;
}
$state_totals[$info["state"]] += $info["pop"];
Gewijzigd op 23/11/2010 10:03:51 door - SanThe -
Ik ga wel weer even spitten dan.
Toevoeging op 23/11/2010 10:01:17:
oh bedankt ,ga het meteen proberen
@SanThe Kijk eens naar de array, Dan telt hij niet meer correct op. Heb ik trouwens ook overheen gekeken.
Mark Coenen op 23/11/2010 10:01:39:
@SanThe Kijk eens naar de array, Dan telt hij niet meer correct op. Heb ik trouwens ook overheen gekeken.
Klopt. Ik had het reeds gezien.
Zie mijn wijziging in mijn post.
Toevoeging op 23/11/2010 10:07:48:
Obelix en Idefix op 23/11/2010 09:51:54:
Heb bovenstaande code gekopieerd en getest en werkt probleemloos?!
Zet je error_reporting(E_ALL) eens aan. Die zal bij jou nu uitstaan. Het zal inderdaad wel werken omdat het een 'notice' is en php dan 'aanneemt' dat ie reeds nul is.
Dankjewel.
Toevoeging op 23/11/2010 12:01:16:
Nog 1 vraag , omdat ik de mechaniek nog niet zo goed begrijp.
als de nieuwe "$state_totals" array gemaakt wordt,
worden dan alle "pop" values, van identieke "states"
bij elkaar opgeteld omdat elke key
maar 1 keer mag voorkomen in een array ?
begrijp ik dat goed ?