[PHP] Re: Troubles from the newb again

2007-03-12 Thread Steve
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

2007-03-09 Thread Jeff Taylor
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

2007-03-09 Thread Stut

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