Hi, Thursday, May 13, 2004, 9:59:23 PM, you wrote: Y> Hello everyone. Y> I am having a stupid problem with a couple of arrays, tried a couple of Y> things but I am feeling disconcerted.
Y> The thing is, I thought it was possible to create arrays in a dynamic Y> fashion, as in: Y> $newarray['newkey'] = "new_value"; Y> And the array would be incremented accordingly. Y> And afterwards, if I wanted to add a new key to the thing, just doing: Y> $newarray['anotherkey'] = "anothervalue"; would be enough. Y> Generally speaking I have been trying that and it was working, but right Y> now I am having some trouble with this. Y> I am parsing a kind of referrals log file, and as I get the values I Y> want to create a hash with all the values I get into a hash to use Y> later on. Y> Each line of the log is processed in a while() loop, and after Y> extracting the values for $searchSource, $searchDomain and $searchTerm I Y> try to create the hash entries with these lines: Y> $table["$searchSource"]["$searchDomain"]["$searchTerm"]["total"]+=$row['order_total']; Y> $table["$searchSource"]["$searchDomain"]["$searchTerm"]["count"]++; Y> "total" is an amount that I want to aggregate for each $seachTerm, and Y> "count" an obvious counter with total hits per $searchTerm/Domain/Source Y> combination. $table is an array which I create before entering the loop Y> with: $table = array(); Y> The problem is that I keep getting this warnings and notices: Y> Notice: Undefined index: GGAW in Y> c:\www\deepswarm.co.uk\script\monthlytable.php on line 60 Y> Notice: Undefined index: www.google.com in Y> c:\www\deepswarm.co.uk\script\monthlytable.php on line 60 Y> Notice: Undefined index: obscuredterm in Y> c:\www\deepswarm.co.uk\script\monthlytable.php on line 60 Y> Notice: Undefined index: total in Y> c:\www\deepswarm.co.uk\script\monthlytable.php on line 60 Y> Notice: Undefined index: count in Y> c:\www\deepswarm.co.uk\script\monthlytable.php on line 62 Y> Using the "@" operator the scripts works perfectly, but I still want to Y> know why I am generating so many notices, and if there is any other Y> "cleaner" way of doing things. Y> I can't create the hash with all necessary keys beforehand because I Y> won't know the values until runtime, so doing something like: Y> $table = array ("GGAW" => Y> array ("www.google.com" => Y> array ("obscuredterm" => Y> array("total", "count") Y> ) Y> ) Y> ) Y> before going into the actual loop is out of the question. Y> Any ideas? This is probably very obvious, but I keep hitting my head Y> against the wall. Light would be greatly appreciated. Y> Thanks for your help. Y> Regards, Y> I.- you have to do it like this: $table["$searchSource"]["$searchDomain"]["$searchTerm"]["total"]= (isset($table["$searchSource"]["$searchDomain"]["$searchTerm"]["total"]))? $table["$searchSource"]["$searchDomain"]["$searchTerm"]["total"] + $row['order_total'] : 1; -- regards, Tom -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php