[PHP] Re: Troubles from the newb again
The way I see it, you have two ways to avoid that error: 1) If you want to preserve indexes: foreach ($array as $index = $name) { if ($name-currentHP 0) { $newarray[$index] = $name; } } 2) If you don't care about indexes at all foreach ($array as $name) { if ($name-currentHP 0) { $newarray[] = $name; } } Either way should make the error go away. The reason why it's coming up is because it looks like the $name value is non-numeric. Storing this stuff in arrays is perfectly acceptable, however using them as indexes is not. Jeff Taylor [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hey everyone, Newb back again - Im trying to populate my arrays, but getting this error again: Warning: Illegal offset type in c:\Inetpub\wwwroot\MyProjects\SecondOffering\myFuncs.php on line 242 Code: $newarray = array(); foreach ($array as $name) { if ($name-currentHP 0) { $newarray[$name]; } } -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Re: Troubles from the newb again
Is it possible to just add a value to the existing? here is my current script: foreach ($newarray as $name) { $newarray[$name] = $name-currentInitiative = rand(1,$name-GetInitiative())); } // sort array by ranking (initiative) sort($newarray,SORT_NUMERIC); can I change the $newarray[$name] to something to represent the current element and just add the value to it? I might be able to work around it then Jeff Taylor [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hey everyone, Newb back again - Im trying to populate my arrays, but getting this error again: Warning: Illegal offset type in c:\Inetpub\wwwroot\MyProjects\SecondOffering\myFuncs.php on line 242 Code: $newarray = array(); foreach ($array as $name) { if ($name-currentHP 0) { $newarray[$name]; } } -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Re: Troubles from the newb again
Jeff Taylor wrote: Is it possible to just add a value to the existing? here is my current script: foreach ($newarray as $name) { $newarray[$name] = $name-currentInitiative = rand(1,$name-GetInitiative())); } // sort array by ranking (initiative) sort($newarray,SORT_NUMERIC); can I change the $newarray[$name] to something to represent the current element and just add the value to it? I might be able to work around it then That's not the problem. Your problem is that you are trying to use an object ($name) as the key of an array. You can't do this. Array keys must be a scalar value, that is to say a 'normal' value (essentially a string or a number). The object in $name probably has some unique value that represents that particular instance. Use that instead of the object itself. -Stut -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php