PHP Warning
Ik heb een poker scriptje gemaakt , maar nu bij het testen krijg ik steeds een warning , het werkt perfect maar ik wil deze warning eruit halen.
PHP Warning: array_flip() [<a href='function.array-flip'>function.array-flip</a>]: Can only flip STRING and INTEGER values!
Het gaat om deze regel , wie o wie kan mij vertellen hoe ik het moet oplossen , of kan de oplossing geven.
Gr Mike
Gewijzigd op 25/08/2011 19:28:04 door Mike de jong
zoals de warning al zegt. Can only flip STRING and INTEGER values!
:|
volgens mij gaat het erom dat $sk andere waardes heeft dan integer en strings.
Jacco Brandt op 25/08/2011 20:27:35:
volgens mij gaat het erom dat $sk andere waardes heeft dan integer en strings.
//Sorry dat ik offtopic ga
Jij reageert toch ook altijd lekker nutteloos hé ;-) Ofwel herhaal je, ofwel wat onzin... (sorry, ik erger er me aan)
Haleluja
Blijkbaar geef jij iets anders op dan een string of een int. Daar moet je dus iets aan doen. Als je dat niet lukt, dan zal je ons wat meer code moeten geven. Want wij weten nu helemaal niet wat $sk is.
Dat laatste is op zich ook verkeerd. In principe zou je aan de variablenaam toch al moeten weten wat het is. Bijvoorbeeld $users, merk de s op. Dan kan je er vanuit gaan dat dat een array is met gebruikersgegevens in.
hieronder de codering.
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
47
48
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
47
48
<?
include $_SERVER['DOCUMENT_ROOT'].'/_config.php';
$msg = '';
$form = false;
$kaart = array();
$show_result = 0;
$msg_error = true;
if ( isset($_SESSION['poker']) )
{
if ( isset($_POST['next']) )
{
$form = true;
$show_result = 2;
for($i = 0; $i < 5; $i++)
{
$kaart[$i] = ( isset($_POST['kaart' . $i]) ) ? $_SESSION['poker']['kaart'][$i] : $_SESSION['poker']['kaart'][$i+5];
}
$sk = array();
$sw = array();
$counts = Array();
$waarde_list = array(14,2,3,4,5,6,7,8,9,10,11,12,13,14,2,3,4,5,6,7,8,9,10,11,12,13,14,2,3,4,5,6,7,8,9,10,11,12,13,14,2,3,4,5,6,7,8,9,10,11,12,13);
for($i = 0; $i < 5; $i++)
{
$sk[$i] = floor($kaart[$i]/13);
$sw[$i] = $waarde_list[$kaart[$i]];
$counts[$sw[$i]] = ( isset($counts[$sw[$i]]) ) ? $counts[$sw[$i]]+1 : 1 ;
}
sort($sw);
sort($sk);
if ( ( max($sw) == min($sw)+4 && 5 == count(array_flip($sw)) ) || ( in_array(14,$sw) && in_array(2,$sw) && in_array(3,$sw) && in_array(4,$sw) && in_array(5,$sw) ) )
{
if ( 1 == count(array_flip($sk)) )
{
if ( min($sw) == 10 )
{
$prijs = 10;
}
else
{
$prijs = 8;
}
}
else
{
$prijs = 4;
}
}
?>
include $_SERVER['DOCUMENT_ROOT'].'/_config.php';
$msg = '';
$form = false;
$kaart = array();
$show_result = 0;
$msg_error = true;
if ( isset($_SESSION['poker']) )
{
if ( isset($_POST['next']) )
{
$form = true;
$show_result = 2;
for($i = 0; $i < 5; $i++)
{
$kaart[$i] = ( isset($_POST['kaart' . $i]) ) ? $_SESSION['poker']['kaart'][$i] : $_SESSION['poker']['kaart'][$i+5];
}
$sk = array();
$sw = array();
$counts = Array();
$waarde_list = array(14,2,3,4,5,6,7,8,9,10,11,12,13,14,2,3,4,5,6,7,8,9,10,11,12,13,14,2,3,4,5,6,7,8,9,10,11,12,13,14,2,3,4,5,6,7,8,9,10,11,12,13);
for($i = 0; $i < 5; $i++)
{
$sk[$i] = floor($kaart[$i]/13);
$sw[$i] = $waarde_list[$kaart[$i]];
$counts[$sw[$i]] = ( isset($counts[$sw[$i]]) ) ? $counts[$sw[$i]]+1 : 1 ;
}
sort($sw);
sort($sk);
if ( ( max($sw) == min($sw)+4 && 5 == count(array_flip($sw)) ) || ( in_array(14,$sw) && in_array(2,$sw) && in_array(3,$sw) && in_array(4,$sw) && in_array(5,$sw) ) )
{
if ( 1 == count(array_flip($sk)) )
{
if ( min($sw) == 10 )
{
$prijs = 10;
}
else
{
$prijs = 8;
}
}
else
{
$prijs = 4;
}
}
?>
Wat probeer je hier te doen? In termen van kaarten en score, niet in termen van array en integers: