Welcome Guest, Not a member yet? Register   Sign In
array_key_exists()
#1

[eluser]thevenin[/eluser]
My simple code checks if the array contains "hits" column and if not, then creates it for the first time by assigning a value to this column.

However after assigning this value the function array_key_exists() still "tells" in the next loop circulation that the "hits" key doesn't exist. Could you look and comment please?

Code:
foreach($bets as $bet)
{

$hit = 0;

if($bet->homeGoals == $bet->homeScore && $bet->awayGoals == $bet->awayScore):
  $hit = 1;
endif;

if($hit == 1)
{
   if(array_key_exists('hits', $standings)):
     $standings[$bet->username]["hits"] += 1;
     echo '$hit=1, key_exists '.$bet->username.'<br/>';
   else:
     $standings[$bet->username]["hits"] = 1;
     echo '$hit=1, not key_exists '.$bet->username.'<br/>';
   endif;
}
else
{    
   if(!array_key_exists("hits",$standings)):
     $standings[$bet->username]["hits"] = 0;
     echo '$hit=0, not key_exists '.$bet->username.'<br/>';
   endif;
}
}


The result of the code is:

Code:
$hit = 0, not key_exists jack
$hit = 1, not key_exists jack    <-- after this line the array_key_exists("hits",$standings) function should always return TRUE;
$hit = 0, not key_exists masta
$hit = 1, not key_exists skurwix
$hit = 0, not key_exists skurwix
$hit = 0, not key_exists zari
$hit = 0, not key_exists zari
$hit = 0, not key_exists masta
$hit = 0, not key_exists jack
$hit = 1, not key_exists masta
$hit = 0, not key_exists skurwix
$hit = 0, not key_exists zari
$hit = 0, not key_exists jack
$hit = 0, not key_exists skurwix
$hit = 1, not key_exists trolek

After the line I marked above the array_key_exists() function should not return FALSE anymore or maybe I misunderstood something?

Please comment guys.
#2

[eluser]Andrew Stilliard[/eluser]
Havent had a good look at your function yet, but have tried useing
Code:
print_r( $standings );
just before the if statement, so you can see exactly whats in that array.
#3

[eluser]thevenin[/eluser]
Code:
Array ( [jack] => Array ( [points] => 13 ) )
$hit = 1, not key_exists jack
Array ( [jack] => Array ( [points] => 23 [hits] => 1 ) )
$hit = 0, not key_exists jack
Array ( [jack] => Array ( [points] => 23 [hits] => 0 ) [masta] => Array ( [points] => 10 ) )
$hit = 0, not key_exists masta
Array ( [jack] => Array ( [points] => 23 [hits] => 0 ) [masta] => Array ( [points] => 10 [hits] => 0 ) [skurwix] => Array ( [points] => 10 ) )
$hit = 0, not key_exists skurwix
Array ( [jack] => Array ( [points] => 23 [hits] => 0 ) [masta] => Array ( [points] => 10 [hits] => 0 ) [skurwix] => Array ( [points] => 20 [hits] => 0 ) )
$hit = 1, not key_exists skurwix
Array ( [jack] => Array ( [points] => 23 [hits] => 0 ) [masta] => Array ( [points] => 10 [hits] => 0 ) [skurwix] => Array ( [points] => 20 [hits] => 1 ) [zari] => Array ( [points] => 5 ) )
$hit = 0, not key_exists zari
Array ( [jack] => Array ( [points] => 23 [hits] => 0 ) [masta] => Array ( [points] => 10 [hits] => 0 ) [skurwix] => Array ( [points] => 20 [hits] => 1 ) [zari] => Array ( [points] => 15 [hits] => 0 ) )
$hit = 0, not key_exists zari
Array ( [jack] => Array ( [points] => 23 [hits] => 0 ) [masta] => Array ( [points] => 20 [hits] => 0 ) [skurwix] => Array ( [points] => 20 [hits] => 1 ) [zari] => Array ( [points] => 15 [hits] => 0 ) )
$hit = 0, not key_exists masta
Array ( [jack] => Array ( [points] => 33 [hits] => 0 ) [masta] => Array ( [points] => 20 [hits] => 0 ) [skurwix] => Array ( [points] => 20 [hits] => 1 ) [zari] => Array ( [points] => 15 [hits] => 0 ) )
$hit = 0, not key_exists jack
Array ( [jack] => Array ( [points] => 33 [hits] => 0 ) [masta] => Array ( [points] => 35 [hits] => 0 ) [skurwix] => Array ( [points] => 20 [hits] => 1 ) [zari] => Array ( [points] => 15 [hits] => 0 ) )
$hit = 1, not key_exists masta
Array ( [jack] => Array ( [points] => 33 [hits] => 0 ) [masta] => Array ( [points] => 35 [hits] => 1 ) [skurwix] => Array ( [points] => 20 [hits] => 1 ) [zari] => Array ( [points] => 15 [hits] => 0 ) )
$hit = 0, not key_exists skurwix
Array ( [jack] => Array ( [points] => 33 [hits] => 0 ) [masta] => Array ( [points] => 35 [hits] => 1 ) [skurwix] => Array ( [points] => 20 [hits] => 0 ) [zari] => Array ( [points] => 22 [hits] => 0 ) )
$hit = 0, not key_exists zari
Array ( [jack] => Array ( [points] => 38 [hits] => 0 ) [masta] => Array ( [points] => 35 [hits] => 1 ) [skurwix] => Array ( [points] => 20 [hits] => 0 ) [zari] => Array ( [points] => 22 [hits] => 0 ) )
$hit = 0, not key_exists jack
Array ( [jack] => Array ( [points] => 38 [hits] => 0 ) [masta] => Array ( [points] => 35 [hits] => 1 ) [skurwix] => Array ( [points] => 25 [hits] => 0 ) [zari] => Array ( [points] => 22 [hits] => 0 ) )
$hit = 0, not key_exists skurwix
Array ( [jack] => Array ( [points] => 38 [hits] => 0 ) [masta] => Array ( [points] => 35 [hits] => 1 ) [skurwix] => Array ( [points] => 25 [hits] => 0 ) [zari] => Array ( [points] => 22 [hits] => 0 ) [trolek] => Array ( [points] => 5 ) )
$hit = 1, not key_exists trolek
#4

[eluser]Andrew Stilliard[/eluser]
When you call
Code:
if(array_key_exists('hits', $standings)):
try changing it to
Code:
if(array_key_exists('hits', $standings[$bet->username])):
#5

[eluser]thevenin[/eluser]
Works perfectly!

Thanks Andrew.




Theme © iAndrew 2016 - Forum software by © MyBB